cpu% cd src/os
cpu% go test -run Clearenv -count 100000
What did you expect to see?
No test failure
What did you see instead?
--- FAIL: TestClearenv (0.02s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.02s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.02s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.02s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.01s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.01s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.00s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.00s)
env_test.go:149: Clearenv() didn't clear $GO_TEST_CLEARENV, remained with value "1"
--- FAIL: TestClearenv (0.00s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.00s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.00s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.00s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.00s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.00s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.00s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
--- FAIL: TestClearenv (0.00s)
env_test.go:145: Setenv("GO_TEST_CLEARENV", "1") didn't set $GO_TEST_CLEARENV
FAIL
exit status: 'os.test 25721: 1'
FAIL os 145.298s
Existence of a race in env tests was originally reported in issue #25234, but it incorrectly assumed it was due to shared /env. Instead, the race seems to be in the Plan 9 kernel, between rfork(RFCENVG) and access to /env.
I propose replacing rfork(RFCENVG) (which creates a new env group) with removal of all environment variables in the current env group. I'll send a CL soon.
What version of Go are you using (
go version
)?What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
What did you expect to see?
No test failure
What did you see instead?
Existence of a race in env tests was originally reported in issue #25234, but it incorrectly assumed it was due to shared
/env
. Instead, the race seems to be in the Plan 9 kernel, betweenrfork(RFCENVG)
and access to/env
.I propose replacing
rfork(RFCENVG)
(which creates a new env group) with removal of all environment variables in the current env group. I'll send a CL soon.@gopherbot Please add label OS-Plan9, NeedsFix
The text was updated successfully, but these errors were encountered: