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
cmd/link,runtime: k8s unit tests on ppc64le panics with index out of range #48837
Comments
I won't be at a keyboard until later today. If you have time, can you confirm exactly which commit caused the regression? There have been a couple recently that touched that code. Thank you! |
@archanaravindar verified for me earlier that it fails on e31c9ab but not on the commit prior. Note that k8 is a test that generates very large binaries, requiring trampolines and maybe splitting text sections. It seems to me we've had issues with the functab with large programs like this in the past, but I'd like to see if I can find anything on it. |
Yes, it is related to multiple text sections. That CL is supposed to take that into consideration. But it is possible something is not really correct. |
I think I kind of understand it. It is an off-by-1 error of some sort. Will try to fix later today. |
Change https://golang.org/cl/354636 mentions this issue: |
Change https://golang.org/cl/354635 mentions this issue: |
As the func table contains the end marker of the text section, we sometimes need to get that address from an offset. Currently textAddr doesn't handle that address, as it is not within any text section. Instead of letting the callers not call textAddr with the end offset, just handle it more elegantly in textAddr. For #48837. Change-Id: I6e97e455f6cb66e9680a7aac6152ba6f4cda2e12 Reviewed-on: https://go-review.googlesource.com/c/go/+/354635 Trust: Cherry Mui <cherryyz@google.com> Trust: Josh Bleecher Snyder <josharian@gmail.com> Run-TryBot: Cherry Mui <cherryyz@google.com> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
When we have multiple text sections, we need to mark holes between the sections in the functab. A hole is marked with an entry with the end PC of the previous section. As we now use offsets instead of (relocated) PCs, the end offset of a section may be the same of the start of the next one. Distinguish it by using the end address -1. For #48837. Change-Id: I121aac53b32a869378632cf151cb1b6f98ad3089 Reviewed-on: https://go-review.googlesource.com/c/go/+/354636 Trust: Cherry Mui <cherryyz@google.com> Trust: Josh Bleecher Snyder <josharian@gmail.com> Run-TryBot: Cherry Mui <cherryyz@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
With the CL above, it passes now. |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
No
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
What did you expect to see?
Test passing successfully
What did you see instead?
Job History can be found here: https://prow.ppc64le-cloud.org/job-history/s3/prow-logs/logs/postsubmit-master-golang-kubernetes-unit-test-ppc64le
I suspect a recent commit 8238f82 is causing the issue.
Verified that same test passed successfully on x86 machine
The text was updated successfully, but these errors were encountered: