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

runtime: windows/386 SEH corruption #7470

Closed
rsc opened this issue Mar 5, 2014 · 2 comments
Closed

runtime: windows/386 SEH corruption #7470

rsc opened this issue Mar 5, 2014 · 2 comments
Milestone

Comments

@rsc
Copy link
Contributor

rsc commented Mar 5, 2014

The windows/386 builder crashes frequently with 

# runtime -cpu=1,2,4
exit status -1073741819
FAIL    runtime 74.823s

that's 0xc0000005, the windows "memory access violation". The test is causing
that intentionally, but it is supposed to turn into a panic, not crash the program. 

It is possible to use 'gdb -p' to attach to the broken process when this happens and
poke around.

The TestCallbackPanic tests have Go call C call Go, with the inner Go panicking and
being recovered by a defer in the outer Go. The call from C to Go pushes a new SEH, but
the panic+recovery does not pop it. This leaves the SEH pointing at memory farther down
the m stack, memory that it takes a little work to overwrite, but once it has been
overwritten, the SEH handler chain is lost, and a future hw fault will not end up in
runtime.sigtramp and Go will not handle it, and we get exit 0xc0000005.
@minux
Copy link
Member

minux commented Mar 5, 2014

Comment 1:

https://golang.org/cl/71440043/

@rsc
Copy link
Contributor Author

rsc commented Mar 5, 2014

Comment 2:

This issue was closed by revision 1249d3a.

Status changed to Fixed.

@rsc rsc added fixed labels Mar 5, 2014
@rsc rsc added this to the Go1.3 milestone Apr 14, 2015
@rsc rsc removed the release-go1.3 label Apr 14, 2015
@golang golang locked and limited conversation to collaborators Jun 25, 2016
This issue was closed.
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