]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/api: work around Windows rename issue on the builders
authorBrad Fitzpatrick <bradfitz@golang.org>
Tue, 23 Dec 2014 02:28:16 +0000 (18:28 -0800)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 23 Dec 2014 04:55:44 +0000 (04:55 +0000)
More cmd/api/run.go hell.

Fixes #9407

Change-Id: If8fb446a2471d6372beb0534c9ab6824029b404c
Reviewed-on: https://go-review.googlesource.com/2054
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
Reviewed-by: Minux Ma <minux@golang.org>
src/cmd/api/run.go

index fb4cf785514c3ae6015c720c34510ca280c8c5fa..b814e8675ebb054fdefccf00246fc4c129681a14 100644 (file)
@@ -150,7 +150,19 @@ func prepGoPath() string {
        }
 
        if err := os.Rename(tmpDir, finalDir); err != nil {
-               log.Fatal(err)
+               if os.IsExist(err) {
+                       // A different builder beat us into putting this repo into
+                       // its final place. But that's fine; if it's there, it's
+                       // the right version and we can use it.
+                       //
+                       // This happens on the Go project's Windows builders
+                       // especially, where we have two builders (386 and amd64)
+                       // running at the same time, trying to compete for moving
+                       // it into place.
+                       os.RemoveAll(tmpDir)
+               } else {
+                       log.Fatal(err)
+               }
        }
        return gopath
 }