-
Notifications
You must be signed in to change notification settings - Fork 18.1k
runtime: hang in pthread_cond_timedwait_relative_np on darwin/arm64 #35800
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
Comments
It's not obvious to me that this has anything to do with The stack trace shows the other goroutine calling |
More weird crashes on darwin/arm64: https://build.golang.org/log/186ffe8d4a32f24c719cb49eddf6e37e73957239 ("fatal: bad g in signal handler") |
CC @cherrymui |
Like Android, this is also the go_bootstrap program, and it also has the warning
On darwin/arm64, we use libc calls, but as it fails to load runtime/cgo package, it does not save/restore G in TLS. If C code temporarily clobbers the G register and a signal is received, bad things will happen. I guess the only thing we could do is to have async preemption disabled in go_bootstrap (and hope that we never receive a signal during C execution). |
Change https://golang.org/cl/208818 mentions this issue: |
So you think https://build.golang.org/log/8da8b3d360f7b226bbc021f29c3d9617d35773f9 is a different issue? It happens during cmd/compile tests. |
Yeah, I think that is probably a different issue. |
Similar in spirit to the hangs on Android, I had to
kill -QUIT
a hanging darwin/arm64 build:https://build.golang.org/log/9678d54fa369d914b12c3b32df3a2470ba7ee4ec
It hung after bootstrap, but before tests:
The text was updated successfully, but these errors were encountered: