[10] RFR(XS) 8185736: missing default exception handler in calls to rethrow_Stub

Tom Rodriguez tom.rodriguez at oracle.com
Tue Aug 8 20:47:52 UTC 2017


C2 exception handler tables must always contain a handler for the bci -1 
since exceptions thrown during exception dispatch will attempt to 
redispatch the recursive exception at bci -1.  C2's rethrow stub may end 
up without a throw to the exit so one must be explicitly inserted to 
ensure the VM doesn't abort during dispatch.  This happened reliably 
because of a StackOverflowException in a Graal system running R code but 
I was unable to build a test case for it.  You can see this missing 
catch_pco by inspecting the -XX:+PrintExceptionHandlers output, so the 
assert by itself show any place where C2 is exposed to this problem.  I 
believe C1 builds it's exception handler tables differently and doesn't 
necessarily include a -1 handler since it always contains an unwind 
handler entry point which is used when no other handler is specified.

Vladimir ran I believe ran this through RBT.


More information about the hotspot-compiler-dev mailing list