RFR: 8205020: ZGC: Apply workaround for buggy sem_post() in glibc < 2.21

Per Liden per.liden at oracle.com
Thu Jun 14 09:34:13 UTC 2018


We should apply a workaround for a bug in sem_post() in glibc < 2.21, 
where it's not safe to destroy the semaphore immediately after returning 
from sem_wait(). The reason is that sem_post() can touch the semaphore 
after a waiting thread have returned from sem_wait(). To avoid this race 
we should force the waiting thread to acquire/release the lock held by 
the posting thread. This workaround is a bit ugly, but I propose we use 
this until we find a batter solution. I can also add that we've never 
actually seen any problems related to the specific cases addressed in 
this patch, but the sem_post() bug has shown up in the Handshake code 
(JDK-8204166), so we want to protect these paths too.

For more details about the sem_post() bug, see 
https://sourceware.org/bugzilla/show_bug.cgi?id=12674

Bug: https://bugs.openjdk.java.net/browse/JDK-8205020
Webrev: http://cr.openjdk.java.net/~pliden/8205020/webrev.0/

Testing: Passed tier{1,2,3,4}

cheers,
Per



More information about the hotspot-gc-dev mailing list