-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Fix misunwind during Profile test under rr #39553
Conversation
Actually, I was able to reproduce the original problem in a docker container, and this does seem to fix it, so I'll go ahead and go work on the Yggdrasil bump. |
44aa9ef
to
0fef25f
Compare
Updated the patch. Hopefully that should fix the backtrace quality regression of the previous patch while keeping the Profile fix. |
a7ce2de
to
b2ad240
Compare
I'm gonna go with this method of CI'ing doesn't work. Works fine locally with the patch applied as well as with a BB-built version of the binary, but not with the one from the buildbot - I assume the corruption has something to do with it. I'll just bump BB and let's try that. |
Freebsd issue turned out to be the fallback unwinder (I guess some library on freebsd doesn't have DWARF info), which needs to be updated to this change. Aarch64 issue, I didn't debug, but I'll just drop the non-x86_64 changes here since we don't (currently) run under rr on aarch64. |
Also drop changes for other architectures (c.f. JuliaLang/julia#39553).
Also drop changes for other architectures (c.f. JuliaLang/julia#39553).
Also drop changes for other architectures (c.f. JuliaLang/julia#39553).
Also drop changes for other architectures (c.f. JuliaLang/julia#39553).
I noticed in #39553 that JIT unwind info didn't actually work on FreeBSD. As a general policy, we should register our frame info to make sure that our unwind is accurate. Libunwind has some heuristics to fall back to, but they can break e.g. for large stack frames.
Libunwind improperly aliases RSP and CFA, which are separate concepts. Fix that.
I noticed in #39553 that JIT unwind info didn't actually work on FreeBSD. As a general policy, we should register our frame info to make sure that our unwind is accurate. Libunwind has some heuristics to fall back to, but they can break e.g. for large stack frames.
This is broken on i686. Looks like the failures appeared on earlier runs of the PR, but, awkwardly, tester_linux32 never ran on the final update, so it has 17 green marks without showing the 1 red. |
Libunwind improperly aliases RSP and CFA, which are separate concepts. Fix that. (cherry picked from commit bbf7f97)
Libunwind improperly aliases RSP and CFA, which are separate concepts. Fix that.
I noticed in JuliaLang#39553 that JIT unwind info didn't actually work on FreeBSD. As a general policy, we should register our frame info to make sure that our unwind is accurate. Libunwind has some heuristics to fall back to, but they can break e.g. for large stack frames.
Libunwind improperly aliases RSP and CFA, which are separate concepts. Fix that.
I noticed in JuliaLang#39553 that JIT unwind info didn't actually work on FreeBSD. As a general policy, we should register our frame info to make sure that our unwind is accurate. Libunwind has some heuristics to fall back to, but they can break e.g. for large stack frames.
Libunwind improperly aliases RSP and CFA, which are separate concepts. Fix that. (cherry picked from commit bbf7f97)
See the included patch for details. In short, libunwind has a bug that causes Profile test failures. Unfortunately, since I'm not seeing the issue locally, I cannot say whether this actually fixes it, so I added a second commit that just builds libunwind locally on the buildbot and hopefully if we run this a couple of times, we'll find out if it works or not. If it does, we can submit this upstream and spin a Yggdrasil release.