Closed decathorpe closed 5 years ago
That is very strange. The line in question seems to be accessing a slice. I could understand an index out of bounds error, but I am not sure how the above panic could be an issue with this code. There is no use of unsafe
when running on those platforms. Unfortunately, I don't have access to those platforms. Do these tests work fine on 1.11? What about tip?
I agree, the errors are a bit strange. It might as well be a bug in the go 1.12 beta release. I only have limited access to those machines.
However, it looks like the crash doesn't happen consistently, as a recent run also crashed with this error on x86_64, so it's probably not dependent on the architecture.
https://github.com/containerd/containerd/issues/3005 sounds similar. I suspect this is a bug in 1.12 and probably should be reported against Go itself.
Yeah, that might very well be the same issue, the crash looks really similar. Since people are already aware of it, I expect this to get fixed before go 1.12 stable is released.
I'll update this issue once I know more. Thanks for your help!
It looks like 1.12rc1 is out. I'd be curious to know if you still see this there.
Assuming this is the same issue seen in containerd, https://github.com/golang/go/issues/30283 was reported against Go.
Yep, looks like it's the same problem.
Thanks for keeping an eye on this issue!
@decathorpe, are you able to reproduce this with Go 1.12 now that it is released? It looks like the issue with the compiler was fixed.
go 1.12 final isn't available on fedora yet, which means I can't test it on the problematic architectures - yet.
I'll report back once I can check if it fixes this issue. Thanks!
It turns out that Travis supports ppc64le. I've added it to the build configuration and it looks like it is ok on 1.12. I'll close this issue but please let me know if you still see it.
Ah, great. Thanks! If there's anything else, I'll leave a comment.
This is strange. I've checked back since 1.12 is in fedora now, and it looks like it doesn't fix the issue. In fact, the segfault started to happen on every supported architecture (including amd64) at some point in time.
You can see the error at the bottom of the build log here: https://kojipkgs.fedoraproject.org/work/tasks/2729/33122729/build.log (this one is for amd64)
That is strange. I am on 1.12 with amd64 locally and I haven't been able to reproduce it. I was able to reproduce it with a pre-1.12 release on ppc64le. Do you have specific steps I could take to reliably reproduce this?
That's the command line that's used for executing unit tests in fedora builds:
go test -buildmode pie -compiler gc -ldflags '-extldflags '\''-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '\'''
Immediately following this, the crash happens:
unexpected fault address 0x7f4cb0829cd6
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x1 addr=0x7f4cb0829cd6 pc=0x55e0b7c1d211]
Since you can't reproduce this, I suspect it's due to outdated dependencies ...
I've had no other issues with go 1.12, but the test suite for this package now fails on three out of six of fedora's supported architectures (ppc64le, aarch64, s390x). x86_64, i686, and armv7hl continue to work fine.
This is the crash output from the ppc64le run (from
go test
) for the 1.3.0 release:If I can provide any other useful information, please let me know.