commit | d73d5d9fb0c2b963bd58ed0ab679dd71498f118e | [log] [tgz] |
---|---|---|
author | Bryan C. Mills <bcmills@google.com> | Tue Oct 27 03:09:26 2020 -0400 |
committer | Bryan C. Mills <bcmills@google.com> | Tue Oct 27 15:15:13 2020 +0000 |
tree | 6e23058b36d4b7dd621f4a5fc892439edaf5d3f8 | |
parent | de477138d1b11982e86d8d0898e2a471771899b6 [diff] |
cmd/go/internal/imports: make Tags and AnyTags safe for concurrent use AnyTags turned up as a data race while running 'go test -race cmd/go'. I'm not sure how long the race has been present. ================== WARNING: DATA RACE Read at 0x000001141ec0 by goroutine 8: cmd/go/internal/imports.AnyTags() /usr/local/google/home/bcmills/go/src/cmd/go/internal/imports/tags.go:45 +0x10e cmd/go/internal/modload.QueryPattern.func2() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modload/query.go:539 +0x11d cmd/go/internal/modload.QueryPattern.func4.1() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modload/query.go:607 +0x3db cmd/go/internal/modload.queryPrefixModules.func1() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modload/query.go:677 +0xa7 Previous write at 0x000001141ec0 by goroutine 7: cmd/go/internal/imports.AnyTags() /usr/local/google/home/bcmills/go/src/cmd/go/internal/imports/tags.go:46 +0x26b cmd/go/internal/modload.QueryPattern.func2() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modload/query.go:539 +0x11d cmd/go/internal/modload.QueryPattern.func4.1() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modload/query.go:607 +0x3db cmd/go/internal/modload.queryPrefixModules.func1() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modload/query.go:677 +0xa7 Goroutine 8 (running) created at: cmd/go/internal/modload.queryPrefixModules() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modload/query.go:676 +0x284 cmd/go/internal/modload.QueryPattern.func4() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modload/query.go:624 +0x2e4 cmd/go/internal/modfetch.TryProxies() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modfetch/proxy.go:220 +0x107 cmd/go/internal/modload.QueryPattern() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modload/query.go:590 +0x69e cmd/go/internal/work.installOutsideModule() /usr/local/google/home/bcmills/go/src/cmd/go/internal/work/build.go:744 +0x4b0 cmd/go/internal/work.runInstall() /usr/local/google/home/bcmills/go/src/cmd/go/internal/work/build.go:556 +0x217 main.main() /usr/local/google/home/bcmills/go/src/cmd/go/main.go:194 +0xb94 Goroutine 7 (finished) created at: cmd/go/internal/modload.queryPrefixModules() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modload/query.go:676 +0x284 cmd/go/internal/modload.QueryPattern.func4() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modload/query.go:624 +0x2e4 cmd/go/internal/modfetch.TryProxies() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modfetch/proxy.go:220 +0x107 cmd/go/internal/modload.QueryPattern() /usr/local/google/home/bcmills/go/src/cmd/go/internal/modload/query.go:590 +0x69e cmd/go/internal/work.installOutsideModule() /usr/local/google/home/bcmills/go/src/cmd/go/internal/work/build.go:744 +0x4b0 cmd/go/internal/work.runInstall() /usr/local/google/home/bcmills/go/src/cmd/go/internal/work/build.go:556 +0x217 main.main() /usr/local/google/home/bcmills/go/src/cmd/go/main.go:194 +0xb94 ================== Change-Id: Id394978fd6ea0c30614caf8f90ee4f8e2d272843 Reviewed-on: https://go-review.googlesource.com/c/go/+/265278 Trust: Bryan C. Mills <bcmills@google.com> Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gopher image by Renee French, licensed under Creative Commons 3.0 Attributions license.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
Official binary distributions are available at https://golang.org/dl/.
After downloading a binary release, visit https://golang.org/doc/install or load doc/install.html in your web browser for installation instructions.
If a binary distribution is not available for your combination of operating system and architecture, visit https://golang.org/doc/install/source or load doc/install-source.html in your web browser for source installation instructions.
Go is the work of thousands of contributors. We appreciate your help!
To contribute, please read the contribution guidelines: https://golang.org/doc/contribute.html
Note that the Go project uses the issue tracker for bug reports and proposals only. See https://golang.org/wiki/Questions for a list of places to ask questions about the Go language.