RFR: 8336042: Caller/callee param size mismatch in deoptimization causes crash [v3]

Dean Long dlong at openjdk.org
Mon Feb 24 22:36:56 UTC 2025


On Mon, 24 Feb 2025 17:28:03 GMT, Tom Rodriguez <never at openjdk.org> wrote:

>> Dean Long has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Stricter assertion on ppc64
>
> src/hotspot/share/runtime/deoptimization.cpp line 650:
> 
>> 648:       // would need to get the size from the resolved method entry.  Another exception would
>> 649:       // be an invokedynamic with an adapter that is really a MethodHandle linker.
>> 650:       caller_was_method_handle = true;
> 
> This flag also controls the code at 711 that controls the computation of caller_adjustment.  Is the new answer also correct for that code?
> 
> This code might be a bit clearer if the computations of  caller_was_method_handle, caller_adjustment and the new caller_actual_parameters were all closer together, though that might complicate a backport so maybe it should be deferred to some later cleanup.

Yes, I have further cleanup that I want to do later, but I want to minimize changes in this one to simplify backports.
Good catch about line 711.  I left it in on purpose, again to simplify backports, but it could be safely removed.  All it does here is over-estimate the adjustment, which is harmless.  In future cleanups, I hope to make the adjustment exact rather than a possibly over-estimated increment.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23557#discussion_r1968511371


More information about the hotspot-dev mailing list