RFR(XS) 8075118: JVM stuck in infinite loop during verification

harold seigel harold.seigel at oracle.com
Tue Mar 17 18:37:47 UTC 2015


Please review this fix for bug JDK-8075118.  The code being verified 
contained a TRY block whose catch handler was inside the TRY block. 
Function ClassVerifier::ends_in_throw() scans the bytecodes in a TRY 
block and then scans the bytecodes in the TRY block's handler and then 
scans the bytecodes of its handler's handler, etc.  Since, the bytecodes 
in the handler and the bytecode's handler's handler were the same, it 
just kept scanning the same bytecodes over and over.

The fix prevents re-scanning a handler's bytecodes if they are contained 
in the TRY block.

Open webrev: http://cr.openjdk.java.net/~hseigel/jdk9_16Mar_8075118/
JBS Bug:  https://bugs.openjdk.java.net/browse/JDK-8075118

The fix was tested with the test program provided by the bug,  the JCK 
Lang, VM, and API tests, the testbase quick and split verifier tests, 
and with the JTREG hotspot tests.

Thanks! Harold

More information about the hotspot-runtime-dev mailing list