-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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/dist: SIGSEGV during bootstrap on aix-ppc64 #58857
Comments
This looks like some sort of problem with xcoff/aix. The code appears to be doing the right thing. It's trying to read a field of Could an aix person take a look? |
@ayappanec can you investigate this? |
Looking into it. |
Thread 1 received signal SIGSEGV, Segmentation fault. Looks like the initTask is not properly loaded. |
I looked into this a little myself. The issue stems from pointers placed in go:runtime.inittasks (in the text section) to things like internal/bytealg..inittask (in the data section). My understanding is AIX can't relocate addresses inside the text section, so those symbols need to live in the data section. I am curious how AIX avoids this issue with other rodata like symbols (I assume there are others). |
We could put both We certainly have pointers in the other direction, from read-write to read-only. For example, I'm confused because it was faulting at 0x200732d00. That's the exact same address that (The original CL has been reverted for other reasons, so to try it at tip you have to patch the CL back in.) |
Moving these to SDATA should resolve the issue on AIX, though it breaks for other reasons.
As for the I suspect there aren't many, if any, RODATA things which have pointers into the DATA section. If there are, I don't know how they are handled. xcoff linking should probably generate errors if it encounters address relocations from rodata into data. |
That looks like the GC is wanting to know where the pointers are. |
Putting those into |
Excellent, I will update my patch when I resubmit. |
New CL is mailed with the SRODATA->SNOPTRDATA fix for aix, so closing. |
Starting with CL 462035 (CC @randall77), the aix-ppc64 builder is failing during bootstrap:
(https://build.golang.org/log/24c90ab924d95afb99d89eda9035e2d24b727755)
CC @golang/aix, @golang/ppc64.
The text was updated successfully, but these errors were encountered: