Found in the wild: http://mail.openjdk.java.net/pipermail/jmh-dev/2014-February/000511.html Minimal test case: public class Test { public static void doCall(int claims) { if (claims == 0) return; doCall(claims - 1); } public static void main(String[] args) { for (int i = 0; i < 10000; i++) { doCall(i); } } } Works fine on Linux x86_64, JDK 8b129 out-of-box, segfaults with forceful inlining via CompileCommand: $ ~/Install/jdk8b129/bin/java -XX:CompileCommand=inline,Test.doCall -XX:+PrintCompilation Test CompilerOracle: inline Test.doCall 68 1 3 java.lang.String::hashCode (55 bytes) 69 2 3 java.lang.Object::<init> (1 bytes) 70 3 3 java.lang.String::equals (81 bytes) 73 4 3 java.lang.String::indexOf (70 bytes) 73 6 n 0 java.lang.System::arraycopy (native) (static) 73 5 3 java.lang.String::charAt (29 bytes) 74 7 3 java.lang.Math::min (11 bytes) 74 8 3 java.lang.String::length (6 bytes) 78 9 1 java.lang.Object::<init> (1 bytes) 78 2 3 java.lang.Object::<init> (1 bytes) made not entrant 78 10 3 java.util.Arrays::copyOfRange (63 bytes) 80 11 3 Test::doCall (12 bytes) Segmentation fault (core dumped) jdk9/hs-comp also affected, *BUT ONLY THE RELEASE BUILD*, fastdebug works fine.
|