-
Notifications
You must be signed in to change notification settings - Fork 4.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
[release/6.0] Restore FP pairs when unwinding in ARM64 #69359
[release/6.0] Restore FP pairs when unwinding in ARM64 #69359
Conversation
I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved. We are considering for 6.0.x
@hoyosjs please ensure that this has a code review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a good targetted fix for .NET 6.0
This test is failing even against 6.0.5 on lab machines for Windows (basically without this change. This code path doesn't get used on Windows, which means the OS unwinder in the lab machines is likely not patched? At least for DDARM64-173, although that one reports having (Windows 10.0.19044.1645). I've seen it also fail in |
Reminder that code complete is today. |
@hoyosjs I've confirmed that the OS unwinder does not have this fix on that version of Windows. Please just turn the test off for Windows, and we'll figure out what to do to best handle the situation later. |
@hoyosjs are we still investigating PR failures, or are we ready to merge? |
Description
This change ensures that unwinding codes of the type
save_fregp
that are emitted for sequences likestp dX, dY, [sp, #Z]
are correctly unwound. Without this, non-volatile registers are not correctly restored and frames above the handler frames can experience data corruption in the case of an exception in Unix based systems.Customer Impact
Corruptions caused by this bug are hard to diagnose and lead to silent data loss.
Regression
No.
Testing
Added regression test that fails without the change.
Risk
Very low - equivalent fix exists in the OS tree.
Package authoring signed off?
N/A