RFR: 8224868 [lworld] VerifyLastFrame fails with assert: getting result from unreachable basicblock
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:
> 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).
>> 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 :
>> 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:
>> The fix has been tested with the reproducer provided with the bug report.
>> Tier1 tests are currently being run on Mach5.
>> Thank you,
More information about the valhalla-dev