From 1e4b642f8d0f2fe594d17700e8f556d2e323036b Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Mon, 22 Dec 2014 18:28:16 -0800 Subject: [PATCH] cmd/api: work around Windows rename issue on the builders More cmd/api/run.go hell. Fixes #9407 Change-Id: If8fb446a2471d6372beb0534c9ab6824029b404c Reviewed-on: https://go-review.googlesource.com/2054 Reviewed-by: Alex Brainman Reviewed-by: Minux Ma --- src/cmd/api/run.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/cmd/api/run.go b/src/cmd/api/run.go index fb4cf78551..b814e8675e 100644 --- a/src/cmd/api/run.go +++ b/src/cmd/api/run.go @@ -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 } -- 2.50.0