You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(profiler): avoid canary+LR corruption in start_routine_wrapper_spec
On musl/aarch64/JDK11, DEOPT PACKING corrupts the top ~224 bytes of the
thread stack, which is exactly where start_routine_wrapper_spec's frame
lives. Two crashes can result:
- struct Cleanup triggers -fstack-protector-strong canary insertion;
DEOPT corrupts it; epilogue fires __stack_chk_fail.
- After the canary, 'return' loads the corrupted saved LR and jumps
to a garbage address.
Fix: no_stack_protector suppresses the canary; pthread_exit() replaces
'return' so LR is never used. Cleanup is done explicitly via TLS
(ProfiledThread::currentTid()) before pthread_exit.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0 commit comments