[11] RFR(XS): 8198826: -XX:+VerifyStack fails with fatal error: ExceptionMark constructor expects no pending exceptions (original) (raw)
David Holmes david.holmes at oracle.com
Fri Mar 2 02:11:10 UTC 2018
- Previous message: [11] RFR(XS): 8198826: -XX:+VerifyStack fails with fatal error: ExceptionMark constructor expects no pending exceptions
- Next message: [11] RFR(XS): 8198826: -XX:+VerifyStack fails with fatal error: ExceptionMark constructor expects no pending exceptions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 1/03/2018 11:26 PM, Tobias Hartmann wrote:
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).
It's not the scalarized object I'm concerned about but other actions that may happen after the allocation point and which would never have occurred if the allocation threw OOME. But perhaps such actions are not possible under the definition of "safe" for this transformation.
But we should probably discuss this elsewhere.
Cheers, David
This is actually what the TestDeoptOOM verifies.
Best regards, Tobias
- Previous message: [11] RFR(XS): 8198826: -XX:+VerifyStack fails with fatal error: ExceptionMark constructor expects no pending exceptions
- Next message: [11] RFR(XS): 8198826: -XX:+VerifyStack fails with fatal error: ExceptionMark constructor expects no pending exceptions
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]