Open bcmills opened 1 year ago
One of these was reported in https://github.com/golang/go/issues/27992#issuecomment-1542912326, but doesn't match the prior failure mode for which that issue was created.
I saw another in a TryBot in https://storage.googleapis.com/go-build-log/55480854/freebsd-amd64-12_3_a94bfe2e.log.
Yeah, that definitely looks different from #27992, but I'm not sure this is necessarily going to be a C&RT issue? It seems like there's a segfault in C code during a net
package test. signal arrived during cgo execution
is just indicating that the crash happened in cgo, so the stack is going to be truncated. Tentatively removing the compiler/runtime label, but feel free to add it back if you disagree.
signal arrived during cgo execution
is just indicating that the crash happened in cgo, so the stack is going to be truncated.
Ah, I see. That makes it tricky to track down the actual failure, though — is there some way we can provide the equivalent of a default runtime.SetCgoTraceback
for the cgo dependencies in the standard library? (Can we make assumptions about system libraries that allow for something simpler than the full generality of SetCgoTraceback
that we need for user C code?)
(CC @ianlancetaylor)
If anything, system libraries are harder to get a traceback from, because they are always heavily optimized and because often the debug info is stored somewhere else. (Without the debug info the traceback is close to useless, it's just a list of PC values.)
For debugging purposes a blank import of github.com/ianlancetaylor/cgosymbolizer will often get a C backtrace, but I really can't recommend making that part of the Go standard library. It's 17,000 lines of C code.
Found new dashboard test flakes for:
#!watchflakes
post <- pkg == "net" && `signal arrived during cgo execution`
Iiiiinteresting, all freebsd-amd64-13_0
.
attn @golang/freebsd !
Okay -- so I'll see if i can reproduce but running the tests with github.com/ianlancetaylor/cgosymbolizer
and if I bump into it, I'll post the trace.
I'm curious: are we running FreeBSD 14 trybots? It might be interesting to know if this was fixed in later releases -- might give me a place to start bisecting.
are we running FreeBSD 14 trybots?
Appears not. https://cs.opensource.google/go/x/build/+/master:env/freebsd-amd64/make.bash only shows versions up to 13.0-SNAPSHOT
. (You're welcome to update the scripts, though — someone on release interrupts should be able to help you deploy the image.)
See issue https://github.com/golang/go/issues/55197 which appears to have the same flakes. Issue https://github.com/golang/go/issues/27992 has flakes for this same test which are different (e.g. no such host, server misbehaving).
Found new dashboard test flakes for:
#!watchflakes
post <- goos == "freebsd" && pkg == "net" && `signal arrived during cgo execution`
any progress on this? centos is have the same issue.
@enihcam Please post plain text as plain text, not as an image. Images are much harder to read. Also, please include all the text; your image seems to be missing the first line or two. Thanks.
That said, the issue you are encountering does not seem to be the one that this bug report is about. This issue is about a failure on FreeBSD, and you are using CentOS. The logs in this issue are all about crashes in res_ninit
. Yours seems to be a crash in getaddrinfo
. So I suggest that you open a new issue.
When you open a new issue: does your problem repeat consistently? Do you have a test case you could share? Thanks.
@enihcam Please post plain text as plain text, not as an image. Images are much harder to read. Also, please include all the text; your image seems to be missing the first line or two. Thanks.
That said, the issue you are encountering does not seem to be the one that this bug report is about. This issue is about a failure on FreeBSD, and you are using CentOS. The logs in this issue are all about crashes in
res_ninit
. Yours seems to be a crash ingetaddrinfo
. So I suggest that you open a new issue.When you open a new issue: does your problem repeat consistently? Do you have a test case you could share? Thanks.
issue resolved. it was due to glibc incompatible. I replaced it with musl libc.
@enihcam based on your description and the traceback, I suspect you may be running in to https://github.com/golang/go/issues/63567 . Any chance your program is calling os.Setenv()
? That specific crash won't happen with musl since its DNS resolver does not use environment variables.
@enihcam based on your description and the traceback, I suspect you may be running in to #63567 . Any chance your program is calling
os.Setenv()
? That specific crash won't happen with musl since its DNS resolver does not use environment variables.
yes, you are right. the program compiled with an old-version glibc (with corresponding old-version libnss) crashes while running in an OS with newer version of glibc+libnss, because glibc loads libnss dynamically. musl has no such issues because musl uses its built-in function for resolving domain names, just like netdns=go.