Hi gophers, The latest Go tip always fail with data race when running with -race and -coverprofile options.
Here is an example of data race output, ---- $ CGO_ENABLED=1 go test -failfast -race -count=1 -coverprofile=cover.out ./... ... ================== WARNING: DATA RACE Read at 0x000001e5f04c by main goroutine: internal/coverage/encodecounter.(*CoverageDataWriter).writeCounters.func2() /home/ms/opt/go/src/internal/coverage/encodecounter/encode.go:261 +0x11c runtime/coverage.(*emitState).VisitFuncs() /home/ms/opt/go/src/runtime/coverage/emit.go:539 +0x6bc internal/coverage/encodecounter.(*CoverageDataWriter).writeCounters() /home/ms/opt/go/src/internal/coverage/encodecounter/encode.go:268 +0x16f internal/coverage/encodecounter.(*CoverageDataWriter).AppendSegment() /home/ms/opt/go/src/internal/coverage/encodecounter/encode.go:175 +0x8ea internal/coverage/encodecounter.(*CoverageDataWriter).Write() /home/ms/opt/go/src/internal/coverage/encodecounter/encode.go:71 +0x97 runtime/coverage.(*emitState).emitCounterDataFile() /home/ms/opt/go/src/runtime/coverage/emit.go:573 +0x91 runtime/coverage.emitCounterDataToDirectory() /home/ms/opt/go/src/runtime/coverage/emit.go:322 +0x310 runtime/coverage.processCoverTestDir() /home/ms/opt/go/src/runtime/coverage/testsupport.go:39 +0x1c4 main.coverTearDown() _testmain.go:179 +0x159 testing.coverReport2() /home/ms/opt/go/src/testing/newcover.go:37 +0xcb testing.coverReport() /home/ms/opt/go/src/testing/cover.go:83 +0xc74 testing.(*M).writeProfiles() /home/ms/opt/go/src/testing/testing.go:2053 +0xc6f testing.(*M).after.func1() /home/ms/opt/go/src/testing/testing.go:1987 +0x30 sync.(*Once).doSlow() /home/ms/opt/go/src/sync/once.go:74 +0x101 sync.(*Once).Do() /home/ms/opt/go/src/sync/once.go:65 +0x46 testing.(*M).after() /home/ms/opt/go/src/testing/testing.go:1986 +0x55 testing.(*M).Run.func4() /home/ms/opt/go/src/testing/testing.go:1761 +0x39 runtime.deferreturn() /home/ms/opt/go/src/runtime/panic.go:476 +0x32 testing.(*M).Run() /home/ms/opt/go/src/testing/testing.go:1771 +0xbb3 github.com/shuLhan/share/lib/dns.TestMain() /home/ms/go/src/github.com/shuLhan/share/lib/dns/dns_test.go:63 +0x5db main.main() _testmain.go:192 +0x33d Previous write at 0x000001e5f04c by goroutine 9: sync/atomic.AddInt32() /home/ms/opt/go/src/runtime/race_amd64.s:281 +0xb sync/atomic.AddUint32() <autogenerated>:1 +0x1a github.com/shuLhan/share/lib/dns.(*Server).processRequest() /home/ms/go/src/github.com/shuLhan/share/lib/dns/server.go:593 +0xc67 github.com/shuLhan/share/lib/dns.(*Server).ListenAndServe.func1() /home/ms/go/src/github.com/shuLhan/share/lib/dns/server.go:187 +0x39 Goroutine 9 (running) created at: github.com/shuLhan/share/lib/dns.(*Server).ListenAndServe() /home/ms/go/src/github.com/shuLhan/share/lib/dns/server.go:187 +0xe6 github.com/shuLhan/share/lib/dns.TestMain.func1() /home/ms/go/src/github.com/shuLhan/share/lib/dns/dns_test.go:54 +0x44 ================== ... ---- There are many lines like that with the same pattern. In the above snippet, the lib/dns/dns_test.go:63 point this code [1], os.Exit(m.Run()) So it does not make sense if the data race is in my code. A quick bisect point to this commit [2]. If someone can confirm this, I will submit an issue to GitHub. [1] https://github.com/shuLhan/share/blob/61720a183756bdf5a8af45e7d75116ce7ef188e0/lib/dns/dns_test.go#L63 [2] https://go.googlesource.com/go/+/53773a5d0892be4489b4d5e91bbc8ae61000ada7%5E%21/ -- { "git":"git.sr.ht/~shulhan", "site":"kilabit.info" } -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/20221002011006.4ffaaaec%40inspiro.localdomain.
pgpLgGLe_dQRK.pgp
Description: OpenPGP digital signature