RFR: 8360219: [AIX] assert(locals_base >= l2) failed: bad placement

Dean Long dlong at openjdk.org
Thu Aug 7 08:51:14 UTC 2025


On Thu, 7 Aug 2025 08:35:33 GMT, Richard Reingruber <rrich at openjdk.org> wrote:

>> It seems like relaxing the assert would allow us to silently overwrite part of a frame::top_ijava_frame_abi, which is only harmless if we are guaranteed to always treat that area as the smaller "parent" ABI past this point.  Is there any way to determine if the ABI frame flavor is "top" or "parent" without adding something like a new "abi_frame_type" slot?
>
>> It seems like relaxing the assert would allow us to silently overwrite part of a frame::top_ijava_frame_abi, which is only harmless if we are guaranteed to always treat that area as the smaller "parent" ABI past this point.
> 
> It is harmless. The interpreted and nmethod calling conventions only use the smaller frame::java_abi (alias for parent_ijava_frame_abi). Calling the VM or other native code requires the full ABI.
> 
>> Is there any way to determine if the ABI frame flavor is "top" or "parent" without adding something like a new "abi_frame_type" slot?
> 
> I would not be aware of any way to determine the ABI type easily. I'm sure many people were looking for it since bugs caused by using the wrong type are painful. Even with a dedicated slot in dbg builds it would be hard to keep the correct type since there are many places where frames get resized.

Thanks @reinrich .  It looks good.

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

PR Comment: https://git.openjdk.org/jdk/pull/26643#issuecomment-3163150172


More information about the hotspot-dev mailing list