Skip to content
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

runtime: invalid pc-encoded table #11396

Closed
dvyukov opened this issue Jun 25, 2015 · 3 comments
Closed

runtime: invalid pc-encoded table #11396

dvyukov opened this issue Jun 25, 2015 · 3 comments
Milestone

Comments

@dvyukov
Copy link
Member

dvyukov commented Jun 25, 2015

Race builders on freebsd fail with the following message:

runtime: invalid pc-encoded table f=type..eq.internal/singleflight.Result pc=0x622560 targetpc=0x626fe4 tab=[0/0]0x0
value=0 until pc=0x622367
value=104 until pc=0x6224f6
value=0 until pc=0x6224f7
value=104 until pc=0x622508
value=0 until pc=0x622509
value=104 until pc=0x62251a
value=0 until pc=0x62251b
value=104 until pc=0x62253a
value=0 until pc=0x62253b
value=104 until pc=0x622560
fatal error: invalid runtime symbol table

http://build.golang.org/log/32461f10c7cad87a0f0f4ec98e1cb129ea058025
http://build.golang.org/log/a188e109f5ebd2c79841fde28d204f5d2edf3400
http://build.golang.org/log/2f3df7f7d10da74135d7c75bfd0d854247530243

@rsc @RLH @aclements @dr2chase

@dvyukov dvyukov added this to the Go1.5 milestone Jun 25, 2015
@aclements
Copy link
Member

I believe this is equivalent to #10747. We tracked this some a few weeks ago and, assuming it's the same thing we were tracking, it's caused by profile samples being taken on the g0 stack when it's in one of the functions linked in from the race detector library, which, of course, doesn't have pcln tables.

@gopherbot
Copy link
Contributor

CL https://golang.org/cl/11652 mentions this issue.

@gopherbot
Copy link
Contributor

CL https://golang.org/cl/11657 mentions this issue.

rsc added a commit that referenced this issue Jun 29, 2015
The old code was recording the current table output offset,
so the table from the next function would be used instead of
the runtime realizing that there was no table at all.

Add debug constant in runtime to check this for every function
at startup. It's too expensive to do that by default, but we can
do the last five functions. The end of the table is usually where
the C symbols end up, so that's where the problems typically are.

Fixes #10747.
Fixes #11396.

Change-Id: I13592e78017969fc22979fa902e19e1b151d41b1
Reviewed-on: https://go-review.googlesource.com/11657
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
@golang golang locked and limited conversation to collaborators Jun 28, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants