Heads-up: failures with -XX:+StressLCM -XX:+StressGCM
Aleksey Shipilev
shade at redhat.com
Tue Sep 20 18:35:49 UTC 2016
Hi,
If you use jcstress for testing Shenandoah, you may notice some of the
tests now intermittently crash VM with SEGVs. E.g.:
org.openjdk.jcstress.tests.locks.stamped.StampedLockPairwiseTests.RLI_URs.tWL_tUW
[-XX:+UseShenandoahGC, -server, -XX:+UnlockDiagnosticVMOptions,
-XX:+StressLCM, -XX:+StressGCM] had failed with the VM error.
In fact, there are lots of failures, but all of them are with
-XX:+StressLCM -XX:+StressGCM, which fuzzes the (C2) instruction
scheduler. Note that until recently those flags were only accessible in
fastdebug builds. But yours truly turned them diagnostic [1], this got
into Shenandoah forest with the recent pull, and now jcstress is able to
use these flags with release builds too.
These failures probably indicate the missing barriers somewhere in C2,
as they usually do. Looking at hs_err-s from crashes, it seems we mostly
fail in some shared Java code, like TreeMap.put, so there is an easy
reproducer:
http://cr.openjdk.java.net/~shade/shenandoah/TestFuzz.java
$ java -XX:+UseShenandoahGC -XX:+UnlockDiagnosticVMOptions
-XX:+StressLCM -XX:+StressGCM TestFuzz
<crash within seconds>
Roland?
Thanks,
-Aleksey
[1] https://bugs.openjdk.java.net/browse/JDK-8156803
More information about the shenandoah-dev
mailing list