diff options
author | Bryan C. Mills <bcmills@google.com> | 2018-11-29 17:46:14 -0500 |
---|---|---|
committer | Bryan C. Mills <bcmills@google.com> | 2018-11-30 15:17:34 +0000 |
commit | 42e8b9c3a430ccc4a03b2994f7dcbde630410e1e (patch) | |
tree | 0f4a99b34c1198972b247bef844fc7eb7e818191 /src/cmd/go/internal/modfetch/fetch.go | |
parent | 96a6bd4bf6281a57c933bdcc1da96a7608cf20d7 (diff) | |
download | go-42e8b9c3a430ccc4a03b2994f7dcbde630410e1e.tar.gz go-42e8b9c3a430ccc4a03b2994f7dcbde630410e1e.zip |
cmd/go/internal/modfetch: make directories read-only after renaming, not before
The call to os.Rename was failing on the darwin builders, despite having passed in the TryBots.
(I tested this change by running 'go test cmd/go' manually on a darwin gomote.)
This fixes the builder failures after CL 146382.
Updates #26794
Fixes #29030
Change-Id: I3644773421789f65e56f183d077b4e4fd17b8325
Reviewed-on: https://go-review.googlesource.com/c/151798
Reviewed-by: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/go/internal/modfetch/fetch.go')
-rw-r--r-- | src/cmd/go/internal/modfetch/fetch.go | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/cmd/go/internal/modfetch/fetch.go b/src/cmd/go/internal/modfetch/fetch.go index 159bc56929..81a6c843ab 100644 --- a/src/cmd/go/internal/modfetch/fetch.go +++ b/src/cmd/go/internal/modfetch/fetch.go @@ -120,7 +120,14 @@ func download(mod module.Version, dir string) (err error) { return err } - return os.Rename(tmpDir, dir) + if err := os.Rename(tmpDir, dir); err != nil { + return err + } + + // Make dir read-only only *after* renaming it. + // os.Rename was observed to fail for read-only directories on macOS. + makeDirsReadOnly(dir) + return nil } var downloadZipCache par.Cache |