RFR(S): 8154151: VM crashes with assert "Ensure we don't compile before compilebroker init"
tobias.hartmann at oracle.com
Fri Apr 15 11:15:42 UTC 2016
On 15.04.2016 11:39, Nils Eliasson wrote:
> Thanks Vladimir!
> On 2016-04-15 01:41, Vladimir Kozlov wrote:
>> I agree with this simple change as the fix.
>> Note, -Xcomp does not switch off Interpreter (we can run without Interpreter). We use !UseInterpreter as indication if Xcomp was used.
>> I don't see a PIT link in the bug report.
> There was none, Tobias found this regression testing something else.
> Now I have added a regression test: hotspot/test/compiler/startup/TieredStopAtLevel0SanityTest.java
> Webrev: http://cr.openjdk.java.net/~neliasso/8154151/webrev.02/
Please set the test copyright date to 2016. I would maybe also change the test summary to what you wrote in line 30 ("Sanity test flag combo..") because this has nothing to do without support for blocking compiles.
Otherwise looks good to me.
>> On 4/14/16 6:17 AM, Nils Eliasson wrote:
>>> Please review this fix.
>>> In JDK-8150646 I added an assert in compile_method that the compiler must not be NULL. Before there was a return there that just ignored the compile.
>>> Running the VM with the flag combination -Xcomp and -XX:TieredStopAtLevel=0 creates a special situation: UseInterpreter is set to false (but the interpreter it is still available) and then some
>>> essential methods are forced to be compiled, but the initial complevel becomes 0 and hits the assert in compileBroker.
>>> We could discuss if it should be allowed to submit compiles on level 0, a change that would become a bit larger. This time I choose to extend the _initalized check in compile_method. I didn't add any
>>> logging or warning because this is really a corner case.
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8154151
>>> Webrev: http://cr.openjdk.java.net/~neliasso/8154151/webrev.01/
>>> (Ignore the extra tags in the webrev)
>>> Best regards,
>>> Nils Eliasson
More information about the hotspot-compiler-dev