-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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: spurious SIGSEGV in systemstack() #68632
Comments
Does that example test crash exactly as written? The only required dependency is go-cmp? |
cc @mknyszek @golang/runtime |
Like I wrote, I have been unable to reproduce it, neither using the original code, nor the simplified version I included here. There's a chance that somewhere in the 13000 omitted lines something happens that later impacts GC, but none of them show up in the goroutine dump, and I'm not at liberty to share them. |
Ah, OK. The crash here is an invalid pointer in the type referenced by a type header of a heap allocation. The most likely cause of this is your application causing some form of memory corruption, which would usually come from bad cgo or unsafe code someone in the application. |
Unfortunately crashes like this, whatever the root cause, are usually the result of a sequence of events that happened long before the actual crash. I don't think we can make much progress here without a way to reproduce, without a core dump, or anything else more in-depth. If the tests you were running include packages that make frequent use of |
Go version
go version go1.22.5 linux/amd64
Output of
go env
in your module/workspace:What did you do?
Our build pipeline ran a test that usually succeeds. Simplified, it looks like this:
and was essentially run like this
go test -timeout=5m -cover -coverprofile=cover.out ./domains/til/services/transformer/main ./unrelated-package-also-being-tested
What did you see happen?
If I'm reading this right, GC was forced upon completion of
go-cmp.compareAny()
, and crashed.What did you expect to see?
Usually, that is what we see. I'm seeing the SIGSEGV for the first time today, and have not been able to reproduce it quickly.
The text was updated successfully, but these errors were encountered: