[11] RFR(XS): 8198826: -XX:+VerifyStack fails with fatal error: ExceptionMark constructor expects no pending exceptions

Tobias Hartmann tobias.hartmann at oracle.com
Thu Mar 1 13:26:55 UTC 2018

On 01.03.2018 12:53, David Holmes wrote:
> But if the allocation fails you don't have the ability to reconstruct the object ?? The OOME must
> appear to happen at the point at which the object should have been allocated, and nothing that
> happens after that point can be seen to have happened.

Yes, if the re-allocation of the scalar replaced object fails during deoptimization, we cannot
re-construct the object. But that's okay because the interpreter will throw an OutOfMemoryError and
not use that object anyway (please note that C2 will only perform scalarization if escape analysis
determined that it's safe to do so and the object is not leaked).

This is actually what the TestDeoptOOM verifies.

Best regards,

More information about the hotspot-dev mailing list