RFR: 8224868 [lworld] VerifyLastFrame fails with assert: getting result from unreachable basicblock

Frederic Parain frederic.parain at oracle.com
Thu May 30 11:53:49 UTC 2019



> On May 29, 2019, at 17:59, Karen Kinnear <KAREN.KINNEAR at ORACLE.COM> wrote:
> 
> 
> Frederic,
> 
> The code you added looks good. Thank you for fixing this so quickly.

Thank you for the review.

> 
> So where was the exception being thrown before this change?

The exception was thrown from the runtime. In the bytecode templates,
lock_object(rmon) / unlock_object(rmon) trap to the runtime in case of
an “always_locked” bit pattern. The check for inline classes and the
throwing of the IllegalMonitorStateException were performed in
ObjectSynchronizer::fast_enter() and ObjectSynchronizer::slow_enter()
(the macro on the first line for both).

Regards,

Fred

> 
> thanks,
> Karen
> 
>> On May 29, 2019, at 4:15 PM, Frederic Parain <frederic.parain at oracle.com> wrote:
>> 
>> This is a fix for 8224868 [lworld] VerifyLastFrame fails with assert: getting result from unreachable basicblock :
>> https://bugs.openjdk.java.net/browse/JDK-8224868
>> 
>> The bug is due to the identity check on the lock being performed after the bcp was incremented,
>> causing the IllegalMonitorStateException to have an incorrect handling with respect to the exception table.
>> 
>> The changes:
>> http://cr.openjdk.java.net/~fparain/8224868/webrev.00/
>> 
>> The fix has been tested with the reproducer provided with the bug report.
>> Tier1 tests are currently being run on Mach5.
>> 
>> Thank you,
>> 
>> Fred
>> 
> 




More information about the valhalla-dev mailing list