8154151: VM crashes with assert "Ensure we don't compile before compilebroker init"
Summary: Drop compiles submitted with complevel_none
Reviewed-by: kvn
--- a/hotspot/src/share/vm/compiler/compileBroker.cpp Thu Apr 28 13:26:29 2016 +0000
+++ b/hotspot/src/share/vm/compiler/compileBroker.cpp Mon Apr 18 11:30:10 2016 +0200
@@ -1037,12 +1037,14 @@
int comp_level,
const methodHandle& hot_method, int hot_count,
const char* comment, Thread* THREAD) {
- // do nothing if compilebroker is not available
- if (!_initialized) {
+ // Do nothing if compilebroker is not initalized or compiles are submitted on level none
+ if (!_initialized || comp_level == CompLevel_none) {
return NULL;
}
+
AbstractCompiler *comp = CompileBroker::compiler(comp_level);
- assert(comp != NULL, "Ensure we don't compile before compilebroker init");
+ assert(comp != NULL, "Ensure we have a compiler");
+
DirectiveSet* directive = DirectivesStack::getMatchingDirective(method, comp);
nmethod* nm = CompileBroker::compile_method(method, osr_bci, comp_level, hot_method, hot_count, comment, directive, THREAD);
DirectivesStack::release(directive);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/startup/TieredStopAtLevel0SanityTest.java Mon Apr 18 11:30:10 2016 +0200
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8154151
+ * @summary Sanity test flag combo that force compiles on level 0
+ * @run main/othervm -Xcomp -XX:+UnlockDiagnosticVMOptions -XX:TieredStopAtLevel=0 TieredStopAtLevel0SanityTest
+ */
+
+public class TieredStopAtLevel0SanityTest {
+ public static void main(String[] args) throws Exception {
+ System.out.println("Hello world!");
+ }
+}