RFR: Missing Evac OOM scope when reference processor is single threaded

Aleksey Shipilev shade at redhat.com
Fri Jul 20 10:42:42 UTC 2018


On 07/20/2018 12:36 PM, Zhengyu Gu wrote:
> When ReferenceProcessor processes references in single-threaded mode, it uses current thread, not
> task executor, and we miss Evac OOM scope for current thread.
> 
> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/missing_evac_oom_scope/webrev.00/index.html

I am confused: which path enters write barrier / evacuation code via the reference processing?!

Roman should look at this. I think it is dangerous to unconditionally enter OOMScope in the
non-worker thread, because IIRC OOM-protocol blocks failed thread until non-failed threads leave the
scope. Which means, this is a deadlock waiting to happen.

-Aleksey



More information about the shenandoah-dev mailing list