RFR(S): 8051344: JVM crashed in Compile::start() during method parsing w/ UseRTMDeopt turned on

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Jul 21 18:13:34 UTC 2014


The original placement was done in assumption that rtm_deopt() may also 
produce failing() state. But looking through methods it uses it may not 
treu. So moving it after failing() check without adding an other check 
after it seems fine but please verify.

Otherwise it look good.

Thanks,
Vladimir

On 7/21/14 10:27 AM, Filipp Zhinkin wrote:
> Hi all,
>
> please review fix for JDK-8051344.
>
> Original issue is about misplaced Parse::rtm_deopt call:
> it was done between method entry setup and check for bailouts during
> that setup.
>
> As a result, when rtm_deopt was called after bailout it either crashed
> while
> tryingto access start block (which is NULL after Compile::record_failure
> call)
> or failed on assert inside Compile::start.
>
> Fix is trivial: rtm_deopt call was placed after bailouts check.
>
> I've also added new test that cause OSR bailout due to non-empty
> interpreter stack.
>
> JBS issue: https://bugs.openjdk.java.net/browse/JDK-8051344
> Webrev: http://cr.openjdk.java.net/~fzhinkin/8051344/webrev.00/
> Testing: JPRT, manual on host w/ Haswell CPU
>


More information about the hotspot-compiler-dev mailing list