-
Notifications
You must be signed in to change notification settings - Fork 18.8k
Closed
Labels
FrozenDueToAgeNeedsDecisionFeedback is required from experts, contributors, and/or the community before a change can be made.Feedback is required from experts, contributors, and/or the community before a change can be made.
Milestone
Description
While testing new race runtime I've hit:
WARNING: DATA RACE
Read at 0x00c4200f8900 by goroutine 28:
os.(*File).Write()
/tmp/workdir/go/src/os/file.go:139 +0x70
os.(*File).WriteString()
/tmp/workdir/go/src/os/file.go:200 +0x7b
os/exec.(*closeOnce).WriteString()
<autogenerated>:43 +0x77
io.WriteString()
/tmp/workdir/go/src/io/io.go:289 +0xa5
strings.(*Reader).WriteTo()
/tmp/workdir/go/src/strings/reader.go:133 +0x172
io.copyBuffer()
/tmp/workdir/go/src/io/io.go:380 +0x432
io.Copy()
/tmp/workdir/go/src/io/io.go:360 +0x7e
os/exec_test.TestStdinClose.func2()
/tmp/workdir/go/src/os/exec/exec_test.go:241 +0xff
Previous write at 0x00c4200f8900 by goroutine 27:
os.(*file).close()
/tmp/workdir/go/src/os/file_unix.go:138 +0x10a
os.(*File).Close()
/tmp/workdir/go/src/os/file_unix.go:127 +0x55
os/exec.(*closeOnce).close()
/tmp/workdir/go/src/os/exec/exec.go:536 +0x50
os/exec.(*closeOnce).(os/exec.close)-fm()
/tmp/workdir/go/src/os/exec/exec.go:531 +0x41
sync.(*Once).Do()
/tmp/workdir/go/src/sync/once.go:44 +0xe1
os/exec.(*closeOnce).Close()
/tmp/workdir/go/src/os/exec/exec.go:531 +0x79
os/exec.(*closeOnce).safeClose()
/tmp/workdir/go/src/os/exec/exec.go:569 +0x55
os/exec.(*closeOnce).(os/exec.safeClose)-fm()
/tmp/workdir/go/src/os/exec/exec.go:518 +0x41
os/exec.closerFunc.Close()
/tmp/workdir/go/src/os/exec/exec.go:541 +0x34
os/exec.(*Cmd).closeDescriptors()
/tmp/workdir/go/src/os/exec/exec.go:262 +0x67
os/exec.(*Cmd).Wait()
/tmp/workdir/go/src/os/exec/exec.go:447 +0x2b8
os/exec_test.TestStdinClose()
/tmp/workdir/go/src/os/exec/exec_test.go:246 +0x21b
testing.tRunner()
/tmp/workdir/go/src/testing/testing.go:639 +0xcd
Goroutine 28 (running) created at:
os/exec_test.TestStdinClose()
/tmp/workdir/go/src/os/exec/exec_test.go:245 +0x20d
testing.tRunner()
/tmp/workdir/go/src/testing/testing.go:639 +0xcd
Goroutine 27 (running) created at:
testing.(*T).Run()
/tmp/workdir/go/src/testing/testing.go:676 +0x535
testing.runTests.func1()
/tmp/workdir/go/src/testing/testing.go:832 +0xaa
testing.tRunner()
/tmp/workdir/go/src/testing/testing.go:639 +0xcd
testing.runTests()
/tmp/workdir/go/src/testing/testing.go:838 +0x4a8
testing.(*M).Run()
/tmp/workdir/go/src/testing/testing.go:773 +0x12f
main.main()
os/exec/_test/_testmain.go:98 +0x1b8
I can't reproduce it with current race runtime, but the race looks very real. Introduced while fixing another race in os/exec #6270. One does not simply use os/exec without races.
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeNeedsDecisionFeedback is required from experts, contributors, and/or the community before a change can be made.Feedback is required from experts, contributors, and/or the community before a change can be made.