Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

os/signal: test failure on win7 x64 #13151

Closed
avdva opened this issue Nov 4, 2015 · 7 comments
Closed

os/signal: test failure on win7 x64 #13151

avdva opened this issue Nov 4, 2015 · 7 comments

Comments

@avdva
Copy link
Contributor

avdva commented Nov 4, 2015

Go 1.5.1 (vanilla installation), windows 7 x64 running in VirtualBox.
cd src\os\signal
go test

error: signal_recv: inconsistent state

goroutine 6 [running]:
runtime.throw(0x5e7cc0, 0x1f)
    c:/go/src/runtime/panic.go:527 +0x97 fp=0xc08205bf20 sp=0xc08205bf08
runtime.signal_recv(0x0)
    c:/go/src/runtime/sigqueue.go:108 +0x219 fp=0xc08205bf58 sp=0xc08205bf20
os/signal.loop()
    c:/go/src/os/signal/signal_unix.go:22 +0x1f fp=0xc08205bfa0 sp=0xc08205bf58
runtime.goexit()
    c:/go/src/runtime/asm_amd64.s:1696 +0x1 fp=0xc08205bfa8 sp=0xc08205bfa0
created by os/signal.init.1
    c:/go/src/os/signal/signal_unix.go:28 +0x3e

goroutine 1 [chan receive]:
testing.RunTests(0x609280, 0x69ace0, 0x1, 0x1, 0xc082002601)
    c:/go/src/testing/testing.go:562 +0x8b4
testing.(*M).Run(0xc08202bee8, 0xc082002610)
    c:/go/src/testing/testing.go:494 +0x77
main.main()
    _/C_/dev/go1.5.1.src/go/src/os/signal/_test/_testmain.go:56 +0x11d

goroutine 5 [syscall]:
_/C_/dev/go1.5.1.src/go/src/os/signal.loop()
    C:/dev/go1.5.1.src/go/src/os/signal/signal_unix.go:22 +0x1f
created by _/C_/dev/go1.5.1.src/go/src/os/signal.init.1
    C:/dev/go1.5.1.src/go/src/os/signal/signal_unix.go:28 +0x3e

goroutine 7 [syscall, locked to thread]:
syscall.Syscall(0x775b1520, 0x2, 0xb8, 0xffffffff, 0x0, 0xc082011e00, 0x402b7c, 0x434262)
    c:/go/src/runtime/syscall_windows.go:128 +0x5c
syscall.WaitForSingleObject(0xb8, 0xffffffff, 0xc08205da40, 0x0, 0x0)
    c:/go/src/syscall/zsyscall_windows.go:690 +0x6f
os.(*Process).wait(0xc082007200, 0x0, 0x0, 0x0)
    c:/go/src/os/exec_windows.go:18 +0xa2
os.(*Process).Wait(0xc082007200, 0x4, 0x0, 0x0)
    c:/go/src/os/doc.go:45 +0x34
os/exec.(*Cmd).Wait(0xc082076000, 0x0, 0x0)
    c:/go/src/os/exec/exec.go:380 +0x21e
os/exec.(*Cmd).Run(0xc082076000, 0x0, 0x0)
    c:/go/src/os/exec/exec.go:258 +0x6b
os/exec.(*Cmd).CombinedOutput(0xc082076000, 0x0, 0x0, 0x0, 0x0, 0x0)
    c:/go/src/os/exec/exec.go:424 +0x317
_/C_/dev/go1.5.1.src/go/src/os/signal.TestCtrlBreak(0xc082070000)
    C:/dev/go1.5.1.src/go/src/os/signal/signal_windows_test.go:78 +0x73d
testing.tRunner(0xc082070000, 0x69ace0)
    c:/go/src/testing/testing.go:456 +0x9f
created by testing.RunTests
    c:/go/src/testing/testing.go:561 +0x874

goroutine 8 [runnable]:
os/exec.(*Cmd).Start.func1(0xc082076000, 0xc082006dc0)
    c:/go/src/os/exec/exec.go:339
created by os/exec.(*Cmd).Start
    c:/go/src/os/exec/exec.go:341 +0xa8a
@ianlancetaylor ianlancetaylor added this to the Go1.6 milestone Nov 4, 2015
@ianlancetaylor
Copy link
Contributor

Is this repeatable?

@avdva
Copy link
Contributor Author

avdva commented Nov 5, 2015

Yes, it is.
If I build the entire go source tree like that:
cd src
set CGO_ENABLED=0 - I don't have a C compiler installed
all.bat
everything works and all the tests are passed. But if after that I try to run go test in src/os/signal, it produces that result.

@ianlancetaylor
Copy link
Contributor

I have no idea what could be happening. Please run go test -x -test.v and paste the output.

@avdva
Copy link
Contributor Author

avdva commented Nov 5, 2015

The output is:

WORK=C:\Users\ALEKSA~1\AppData\Local\Temp\go-build647293982
mkdir -p $WORK\_\c_\dev\go\src\os\signal\_test\_\c_\dev\go\src\os\
mkdir -p $WORK\_\c_\dev\go\src\os\signal\_test\_obj_test\
cd c:\dev\go\src\os\signal
"C:\\Go\\pkg\\tool\\windows_amd64\\compile.exe" -o "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test\\_\\c_\\dev\\go\\src\\os\\signal.a" -trimpath "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982" -p _/c_/dev/go/src/os/signal -buildid 306b60a1dbe4d5d453f1722c9f494a9153cbd125 -D _/c_/dev/go/src/os/signal -I "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982" -pack -asmhdr "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test\\_obj_test\\go_asm.h" "c:\\dev\\go\\src\\os\\signal\\signal.go" "c:\\dev\\go\\src\\os\\signal\\signal_unix.go" "c:\\dev\\go\\src\\os\\signal\\signal_windows_test.go"
mkdir -p $WORK\_\c_\dev\go\src\os\signal\_test\_obj_xtest\
"C:\\Go\\pkg\\tool\\windows_amd64\\compile.exe" -o "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test\\_\\c_\\dev\\go\\src\\os\\signal_test.a" -trimpath "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982" -p _/c_/dev/go/src/os/signal_test -complete -D _/c_/dev/go/src/os/signal -I "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982" -pack "c:\\dev\\go\\src\\os\\signal\\example_test.go"
"C:\\Go\\pkg\\tool\\windows_amd64\\asm.exe" -o "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test\\_obj_test\\sig.o" -trimpath "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982" -I "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test\\_obj_test\\" -I "C:\\Go\\pkg\\include" -D GOOS_windows -D GOARCH_amd64 "c:\\dev\\go\\src\\os\\signal\\sig.s"
pack r "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test\\_\\c_\\dev\\go\\src\\os\\signal.a" "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test\\_obj_test\\sig.o" # internal
mkdir -p $WORK\_\c_\dev\go\src\os\signal\_test\
cd $WORK\_\c_\dev\go\src\os\signal\_test
"C:\\Go\\pkg\\tool\\windows_amd64\\compile.exe" -o "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test\\main.a" -trimpath "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982" -p main -complete -D "" -I "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test" -I "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982" -pack "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test\\_testmain.go"
cd .
"C:\\Go\\pkg\\tool\\windows_amd64\\link.exe" -o "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test\\signal.test.exe" -L "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test" -L "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982" -w -extld=gcc -buildmode=exe "C:\\Users\\ALEKSA~1\\AppData\\Local\\Temp\\go-build647293982\\_\\c_\\dev\\go\\src\\os\\signal\\_test\\main.a"
$WORK\_\c_\dev\go\src\os\signal\_test\signal.test.exe -test.v=true
fatal error: signal_recv: inconsistent state

goroutine 6 [running]:
runtime.throw(0x5e7ce0, 0x1f)
    c:/go/src/runtime/panic.go:527 +0x97 fp=0xc082059f20 sp=0xc082059f08
runtime.signal_recv(0x0)
    c:/go/src/runtime/sigqueue.go:108 +0x219 fp=0xc082059f58 sp=0xc082059f20
os/signal.loop()
    c:/go/src/os/signal/signal_unix.go:22 +0x1f fp=0xc082059fa0 sp=0xc082059f58
runtime.goexit()
    c:/go/src/runtime/asm_amd64.s:1696 +0x1 fp=0xc082059fa8 sp=0xc082059fa0
created by os/signal.init.1
    c:/go/src/os/signal/signal_unix.go:28 +0x3e

goroutine 1 [chan receive]:
testing.RunTests(0x609260, 0x69ace0, 0x1, 0x1, 0xc082002601)
    c:/go/src/testing/testing.go:562 +0x8b4
testing.(*M).Run(0xc08202bee8, 0xc082002610)
    c:/go/src/testing/testing.go:494 +0x77
main.main()
    _/c_/dev/go/src/os/signal/_test/_testmain.go:56 +0x11d

goroutine 5 [syscall]:
_/c_/dev/go/src/os/signal.loop()
    c:/dev/go/src/os/signal/signal_unix.go:22 +0x1f
created by _/c_/dev/go/src/os/signal.init.1
    c:/dev/go/src/os/signal/signal_unix.go:28 +0x3e

goroutine 7 [runnable, locked to thread]:
syscall.Syscall(0x77321840, 0x2, 0x94, 0xc08205bb94, 0x0, 0x60, 0x5a08e0, 0x0)
    c:/go/src/runtime/syscall_windows.go:128 +0x5c
syscall.GetConsoleMode(0x94, 0xc08205bb94, 0x0, 0x0)
    c:/go/src/syscall/zsyscall_windows.go:1238 +0x70
os.newFile(0x94, 0xc08200c320, 0x47, 0x0)
    c:/go/src/os/file_windows.go:53 +0xd7
os.NewFile(0x94, 0xc08200c320, 0x47, 0x1b6)
    c:/go/src/os/file_windows.go:66 +0x56
os.openFile(0xc08200c320, 0x47, 0x242, 0x1b6, 0xc08200c364, 0x0, 0x0)
    c:/go/src/os/file_windows.go:89 +0xf8
os.OpenFile(0xc08200c320, 0x47, 0x242, 0x1b6, 0xc08205bd08, 0x0, 0x0)
    c:/go/src/os/file_windows.go:141 +0x1db
os.Create(0xc08200c320, 0x47, 0x44, 0x0, 0x0)
    c:/go/src/os/file.go:255 +0x4f
_/c_/dev/go/src/os/signal.TestCtrlBreak(0xc08206e000)
    c:/dev/go/src/os/signal/signal_windows_test.go:68 +0x377
testing.tRunner(0xc08206e000, 0x69ace0)
    c:/go/src/testing/testing.go:456 +0x9f
created by testing.RunTests
    c:/go/src/testing/testing.go:561 +0x874

In fact, the output is slightly different each time. Let me describe the situation more carefully.
I have Go 1.5.1 binaries installed in c:\go. Also, I downloaded 1.5.1 source in c:\dev\go. The go command runs from c:\go\bin.
So, when I cd into c:\dev\go\src\os\signal and run go test, it fails. But if I try to do test in c:\go\src\os\signal, everything works fine.

@ianlancetaylor
Copy link
Contributor

Do you have GOROOT set in the environment?

@avdva
Copy link
Contributor Author

avdva commented Nov 7, 2015

Yes, GOROOT is c:\go\. So, when I change it to c:\dev\go, the test works fine.
It was not obvious for me: despite the fact, that the sources are identical, changing GOROOT makes the tests pass.
With GOROOT set to c:\go some test pass, others don't. For instance,
reflect, strconv, regexp - pass
signal, bufio - fail
It is, likely, not an issue at all.
Thanks.

@ianlancetaylor
Copy link
Contributor

In general, don't set GOROOT in the environment.

@golang golang locked and limited conversation to collaborators Nov 10, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants