RFR(XS) 8075118: JVM stuck in infinite loop during verification
Dean Long
dean.long at oracle.com
Tue Mar 17 19:06:25 UTC 2015
Hi Harold. How does this change guarantee that the catch handler is
always scanned? If it was an island of code surrounded by gotos, so that
it is only reachable through the handler, then it looks like it will now
be skipped entirely.
dl
On 3/17/2015 11:37 AM, harold seigel wrote:
> Hi,
>
> 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