-
Bug
-
Resolution: Unresolved
-
P4
-
21, 23, 25
-
aarch64
-
windows
OpenJDK testcase runtime/ErrorHandling/CreateCoredumpOnCrash
fails on Windows aarch64, the reason being because no core dumps or hs
error log are being written, nor is the normal JVM crash report output written
to stdout/err for some reason...?
Testcase: https://github.com/openjdk/jdk21u/blob/master/test/hotspot/jtreg/runtime/ErrorHandling/CreateCoredumpOnCrash.java
Result:
Execution failed: `main' threw exception: java.lang.RuntimeException: 'CreateCoredumpOnCrash turned off, no core file dumped' missing from stdout/stderr
The problem of no JVM crash reporting can easily be replicated using a
simple crash program like:
import sun.misc.Unsafe;
import java.lang.reflect.Field;
public class Crash {
public static void main(String... args) throws Exception {
System.out.println("Crash:");
getUnsafe().putInt(0L, 0);
System.out.println("Didn't crash!");
}
private static Unsafe getUnsafe() throws NoSuchFieldException, IllegalAccessException {
Field theUnsafe = Unsafe.class.getDeclaredField("theUnsafe");
theUnsafe.setAccessible(true);
return (Unsafe) theUnsafe.get(null);
}
}
fails on Windows aarch64, the reason being because no core dumps or hs
error log are being written, nor is the normal JVM crash report output written
to stdout/err for some reason...?
Testcase: https://github.com/openjdk/jdk21u/blob/master/test/hotspot/jtreg/runtime/ErrorHandling/CreateCoredumpOnCrash.java
Result:
Execution failed: `main' threw exception: java.lang.RuntimeException: 'CreateCoredumpOnCrash turned off, no core file dumped' missing from stdout/stderr
The problem of no JVM crash reporting can easily be replicated using a
simple crash program like:
import sun.misc.Unsafe;
import java.lang.reflect.Field;
public class Crash {
public static void main(String... args) throws Exception {
System.out.println("Crash:");
getUnsafe().putInt(0L, 0);
System.out.println("Didn't crash!");
}
private static Unsafe getUnsafe() throws NoSuchFieldException, IllegalAccessException {
Field theUnsafe = Unsafe.class.getDeclaredField("theUnsafe");
theUnsafe.setAccessible(true);
return (Unsafe) theUnsafe.get(null);
}
}