[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 10:38:44 UTC 2018
Hi David,
On 01.03.2018 11:11, David Holmes wrote:
> Interesting - does that mean you have to roll back everything that happened since the allocation
> point ???
No, besides the general JVM state, C2 compiled code also keeps track of the state of scalarized
objects to be able to reconstruct them at safepoints, i.e., when deoptimization could happen (see
'SafePointScalarObjectNode').
> Looks okay. My only thought is whether the PEM should be across the full scope of the VerifyStack
> logic (as you have it) or whether it should only wrap the code you know has the ExceptionMark? I
> guess as this is a JRT_LEAF function we don't expect anything else to generate exceptions, so the
> placement shouldn't really matter.
The ExceptionMark is in OopMapCache::compute_one_oop_map() which is called from two locations in the
VerifyStack scope. A more narrow scope would be inside the for-loop and I think we would like to
avoid that. And yes, we don't expect anything else to generate an exception (the PEM actually guards
against that).
Thanks,
Tobias
More information about the hotspot-dev
mailing list