RFC: shenandoah/jdk8u fails arraycopy verification after verification fix

Aleksey Shipilev shade at redhat.com
Mon Jul 17 07:34:13 UTC 2017


shenandoah/jdk8u fails C2 verification here:

  if (call->is_call_to_arraycopystub()) {
    ...

    if (!ShenandoahBarrierNode::verify_helper(n->in(TypeFunc::Parms), phis,
visited, ShenandoahLoad, trace, barriers_used) ||
        !ShenandoahBarrierNode::verify_helper(dest, phis, visited,
ShenandoahStore, trace, barriers_used)) {
      n->dump(10);
      ShouldNotReachHere(); <--- fails
    }

Fails almost immediately with e.g.:

$ build/linux-x86_64-normal-server-fastdebug/images/j2sdk-image/bin/java -jar
~/Install/jcstress/jcstress-tests-all-2017-06-12.jar --jvmArgs "-Xmx1g
-XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
-XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions
-XX:+ShenandoahVerifyOptoBarriers" -m quick

Bisected to this change:
  http://hg.openjdk.java.net/shenandoah/jdk8u/hotspot/rev/e1efabeca2be

The same change performs fine in shenandoah/jdk9 and shenandoah/jdk10. Reverting
it fixes the test in shenandoah/jdk8u. What should we do about it?

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list