aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/modfetch/fetch.go
diff options
context:
space:
mode:
authorBryan C. Mills <bcmills@google.com>2018-11-29 17:46:14 -0500
committerBryan C. Mills <bcmills@google.com>2018-11-30 15:17:34 +0000
commit42e8b9c3a430ccc4a03b2994f7dcbde630410e1e (patch)
tree0f4a99b34c1198972b247bef844fc7eb7e818191 /src/cmd/go/internal/modfetch/fetch.go
parent96a6bd4bf6281a57c933bdcc1da96a7608cf20d7 (diff)
downloadgo-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.go9
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