An obvious bad assertion: non-empty task queues are possible if GC cycle is canceled. Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/bad_assertion/webrev.00/ Test: tier2_gc_shenandoah (fastdebug) and Compiler.sunflow where the failure was seen. Thanks, -Zhengyu