Bug: ZGC crashes with AbstractMethodError

Aleksey Shipilev shade at redhat.com
Mon Dec 11 09:35:01 UTC 2017


Hi,

One of our tests (sorry, we can't share it, alas :() fails with weird ZGC crash. Running without JMH
forking -- because I suspected the bug is triggered by serialization in host-forked VM link --
reveals AbstractMethodError:

# Detecting actual CPU count: 16 detected
# JMH version: 1.19
# VM version: JDK 10-internal, VM 10-internal+0-adhoc.shade.zgc-zgc
# VM invoker: /home/shade/trunks/zgc-zgc/build/baseline/bin/java
# VM options: -Xmx8g -Xms8g -XX:+AlwaysPreTouch -XX:+UseZGC
# Warmup: 5 iterations, 1 s each
# Measurement: 5 iterations, 10 s each
# Timeout: 10 min per iteration
# Threads: 16 threads, will synchronize iterations
# Benchmark mode: Throughput, ops/time
# Benchmark: ...

# Run progress: 0.00% complete, ETA 00:00:55
# Fork: N/A, test runs in the host VM
# *** WARNING: Non-forked runs may silently omit JVM options, mess up profilers, disable compiler
hints, etc. ***
# *** WARNING: Use non-forked runs only for debugging purposes, not for actual performance runs. ***
# Warmup Iteration   1: <failure>

Exception in thread "main" java.lang.AbstractMethodError:
java.lang.Throwable.printStackTrace(Ljava/io/PrintWriter;)V
	at org.openjdk.jmh.util.Utils.throwableToString(Utils.java:162)
	at org.openjdk.jmh.runner.BaseRunner.doSingle(BaseRunner.java:150)
	at org.openjdk.jmh.runner.BaseRunner.runBenchmarksEmbedded(BaseRunner.java:111)
	at org.openjdk.jmh.runner.Runner.runBenchmarks(Runner.java:550)
	at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:313)
	at org.openjdk.jmh.runner.Runner.run(Runner.java:206)
	at org.openjdk.jmh.Main.main(Main.java:71)


This does not happen with UseSerialGC. This does not happen with -XX:TieredStopAtLevel=1. This does
not happen with -Xint. What's more frustrating, the issue is only reproducible with release bits,
not with fastdebug.

It seems as if something gone awry with C2? Do you have a hunch what that might be? And, how to
diagnose this better?

Workload does lots of floating pointing math (which probably means XMM/YMM usage), that might be a clue.

Thanks,
-Aleksey



More information about the zgc-dev mailing list