[jdk11u-dev] RFR: 8315380: AsyncGetCallTrace crash in frame::safe_for_sender

Paul Hohensee phh at openjdk.org
Fri Mar 7 17:44:53 UTC 2025


On Wed, 26 Feb 2025 11:11:12 GMT, Jaroslav Bachorik <jbachorik at openjdk.org> wrote:

> This change is fixing the problem in `frame_aarch64.cpp`, function `safe_for_sender`, where we have this code
> 
> 
> bool unextended_sp_safe = unextended_sp < thread->stack_base();
> 
> 
> While this captures one possibility of not being safe, it omits the check for `unextended_sp` falling within the stack space.
> 
> The proposed change then is
> 
> 
> bool unextended_sp_safe = (unextended_sp < thread->stack_base() && \
>                              sp >= thread->stack_base() - thread->stack_size());
> 
> 
> This is actually just making sure the behaviour is the same as in JDK 15+ (since [JDK-8238988](https://bugs.openjdk.org/browse/JDK-8238988)) where the `unextended_sp` is checked for being within the stack limits.
> 
> 
> The change is not accompanied by a JTReg test because I was not able to craft one triggering the issue reliably.
> 
> Existing tests from tier1-tier4 were run on a linux-aarch64 system with no new failures observed.

Should not the new check be of unextended_sp rather than sp? That would match the check in JDK 17.

-------------

PR Review: https://git.openjdk.org/jdk11u-dev/pull/3003#pullrequestreview-2667931739


More information about the jdk-updates-dev mailing list