From 4f81a326d0c1e27d36254c664a349e75e638ae00 Mon Sep 17 00:00:00 2001 From: Carlos Amedee Date: Wed, 27 Nov 2019 18:31:36 +0000 Subject: [PATCH] [release-branch.go1.13] cmd/go/internal/modget: synchronize writes to modOnly map in runGet Adds an additional lock around an access to modOnly. Updates #35317 Fixes #35318 Change-Id: Ia1e75f9a674ec2a2c0489b41283c1cd3e7924d1e Reviewed-on: https://go-review.googlesource.com/c/go/+/209237 Run-TryBot: Jay Conrod TryBot-Result: Gobot Gobot Reviewed-by: Jay Conrod (cherry picked from commit 9174e2c03c423a47bf052b8a1aa844f3378eccd4) Reviewed-on: https://go-review.googlesource.com/c/go/+/209222 Run-TryBot: Alexander Rakoczy --- src/cmd/go/internal/modget/get.go | 2 ++ src/cmd/go/testdata/script/mod_issue35317.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cmd/go/internal/modget/get.go b/src/cmd/go/internal/modget/get.go index d234a1eb0b..314019f125 100644 --- a/src/cmd/go/internal/modget/get.go +++ b/src/cmd/go/internal/modget/get.go @@ -456,7 +456,9 @@ func runGet(cmd *base.Command, args []string) { modOnly := make(map[string]*query) for _, q := range queries { if q.m.Version == "none" { + modOnlyMu.Lock() modOnly[q.m.Path] = q + modOnlyMu.Unlock() continue } if q.path == q.m.Path { diff --git a/src/cmd/go/testdata/script/mod_issue35317.txt b/src/cmd/go/testdata/script/mod_issue35317.txt index 003390b710..92416a54e4 100644 --- a/src/cmd/go/testdata/script/mod_issue35317.txt +++ b/src/cmd/go/testdata/script/mod_issue35317.txt @@ -5,4 +5,4 @@ env GO111MODULE=on [short] skip go mod init example.com -go get golang.org/x/text@v0.3.0 golang.org/x/internal@v0.1.0 +go get golang.org/x/text@v0.3.0 golang.org/x/internal@v0.1.0 golang.org/x/exp@none -- 2.48.1