-
Notifications
You must be signed in to change notification settings - Fork 18.7k
Closed
Labels
FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.The path to resolution is known, but the work has not been done.RaceDetector
Milestone
Description
What version of Go are you using (go version)?
$ go version go version devel +6dbcc8b865 Thu Jan 9 15:38:00 2020 +0000 linux/amd64
What operating system and processor architecture are you using (go env)?
go env Output
$ go env GO111MODULE="auto" GOARCH="amd64" GOBIN="" GOCACHE="/home/rog/.cache/go-build" GOENV="/home/rog/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GONOPROXY="github.com/heetch" GONOSUMDB="github.com/heetch" GOOS="linux" GOPATH="/home/rog/src/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/home/rog/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/home/rog/go/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="/tmp/m/go.mod" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build752416385=/tmp/go-build -gno-record-gcc-switches" /pre>
What did you do?
When this test code runs under the race detector, I don't see a race detected, even though there is a race. When I add a sleep (set bogus to true), the race detector does find the race.
https://play.golang.org/p/ECoOELB1fC1
package test
import (
"sync"
"testing"
"time"
)
const bogus = false
func corrupt(data []byte) {
copy(data, data[2:])
}
var saved string
func TestFoo(t *testing.T) {
data := []byte("hello there")
var wg sync.WaitGroup
wg.Add(1)
go func() {
saved = string(data)
wg.Done()
}()
if bogus {
time.Sleep(time.Millisecond)
}
corrupt(data)
wg.Wait()
t.Logf("saved %q; data %q", saved, data)
}
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.The path to resolution is known, but the work has not been done.RaceDetector