-
Notifications
You must be signed in to change notification settings - Fork 18k
building on illumos gets stuck occasionally #35261
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
I believe the build in progress is:
|
It seems like this might have been caused by the integration of 6becb03. If I try to build that revision, we seem to hit a reproducible hang at the @ianlancetaylor Sorry to bug you, but do you have any thoughts? |
When this happens again, can you send a |
I waited until the thing was stuck for at least a minute with no child processes and then I dropped
|
Alright I think I have figured it out: diff --git a/src/runtime/netpoll_solaris.go b/src/runtime/netpoll_solaris.go
index 26bbe38d86..c05c2a2a7c 100644
--- a/src/runtime/netpoll_solaris.go
+++ b/src/runtime/netpoll_solaris.go
@@ -230,7 +230,13 @@ func netpoll(delay int64) gList {
retry:
var n uint32 = 1
if port_getn(portfd, &events[0], uint32(len(events)), &n, wait) < 0 {
- if e := errno(); e != _EINTR && e != _ETIME {
+ e := errno()
+ // As per port_getn(3C), an ETIME failure does not preclude the
+ // delivery of some number of events.
+ if e == _ETIME && n > 0 {
+ goto process
+ }
+ if e != _EINTR && e != _ETIME {
print("runtime: port_getn on fd ", portfd, " failed (errno=", e, ")\n")
throw("runtime: netpoll failed")
}
@@ -242,6 +248,7 @@ retry:
goto retry
}
+process:
var toRun gList
for i := 0; i < int(n); i++ {
ev := &events[i] I'll submit a CL. Sorry for the bother. |
Thanks for figuring this out! (Probably the real CL should not use a |
Change https://golang.org/cl/204801 mentions this issue: |
As I've been trying to look into #35085, I've noticed the builder become stuck a couple of times. Most recently I've dug in to see where.
The last build action:
This has been running for some time:
The process tree:
There's an OS thread possibly stuck in the allocator?
The text was updated successfully, but these errors were encountered: