added the assert in ShenandoahEvacuationTask that is too strong. There is a corner case when the region is collection-set-pinned (CSP), and the oom-evac-protocol waits for GC thread to complete the evacuation. There is a short window where GC thread can see the CSP region before seeing cancellation request.
It seems easier to remove the too strong assert for now.
The assertion failure reliably reproduces with -XX:ShenandoahGCHeuristics=aggressive -XX:+ShenandoahOOMDuringEvacALot on SPECjvm2008.