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
x/net/context/ctxhttp: test failures due to ENOBUFS
on netbsd-386-9_0
#56810
Comments
Found new dashboard test flakes for:
2022-11-16 23:25 netbsd-386-9_0 net@0833b635 go@fdd8f021 x/net/context/ctxhttp.TestGo17Context (log)
|
ENOBUFS
@golang/netbsd, it's not clear to me how a TCP dial could result in |
Sorry, but there were parse errors in the watch flakes script.
And the problems were:
See https://go.dev/wiki/Watchflakes for details. |
ENOBUFS
ENOBUFS
on netbsd-386-9_0
What is the syscall that fails? Have you checked the numbers for SOCK_STREAM, SOCK_DGRAM, &c., to verify they match NetBSD? Is there a quick reproducer? Can you get a ktrace of the process that fails? |
The only information I have is what's in the attached log, which has only been seen once on the builders. (If more information is needed for debugging, please do send a CL to add that information to the errors on the affected codepaths.) |
What are the affected code paths? Where do I find the source code to this? I grepped through the go git repository's master branch for |
The call that returned the error is this one: That tracks through
The Unfortunately, the error message doesn't include enough information to pin down which of those paths is being taken. 🤦♂️ |
It looks like this must have come out of the Can you pinpoint the call to |
I only see one (Full search: https://cs.opensource.google/search?q=%5C%22socket%5C%22&ss=go%2Fgo) |
What is socketFunc?
How does this one get I did a quick search for ENOBUFS in the NetBSD kernel reachable from
So this could happen from a low-memory situation, or because of the socket buffer rlimit, or because of Can you show the rlimits you run this process with? Can you try raising them if they aren't already unlimited, or can you try raising |
It's an indirection for
Given that it's a
Assuming that they're the same as for a login shell on a
I don't think I can feasibly do that on the Go builders, no. (And even if I could, with only N=1 failures I wouldn't be able to determine whether that fixed anything.) |
It could be, and that could happen even if the address space shortage is only transient, because of the use of PR_NOWAIT. We've been working to minimize the use of PR_NOWAIT to avoid this kind of low-probability error on transient memory shortage; a reasonably small fixed-size allocation like this is a candidate for conversion to PR_WAITOK so
Probably not much more we can do to diagnose this, then. |
Issue created automatically to collect these failures.
Example (log):
— watchflakes
The text was updated successfully, but these errors were encountered: