RFR (XS): 8236177: assert(status == 0) failed: error ETIMEDOUT(60), cond_wait

gerard ziemski gerard.ziemski at oracle.com
Wed Mar 25 18:03:46 UTC 2020


hi all,

Please review this "workaround" for now, which can not be called an 
actual fix just yet, designed to figure out why on Mac OS X, we get 
(very rarely) ETIMEDOUT when calling pthread_cond_wait() API. On other 
hand, it might actually fix it.

According to man pages, only EINVAL is allowed as an error code here, 
but an inspection of the Darwin source code 
https://opensource.apple.com/source/libpthread/libpthread-301.1.6/src/pthread_cond.c.auto.html 
reveals that under some circumstances ETIMEDOUT may be returned.

The workaround for now is to try the operation again, after a short 
delay (via yield() API). This will hopefully let us know whether that's 
enough. If not, we may try to either keep trying the same operation 
until it succeeds or return an error and let the code above handle it.

The workaround applies only to OS X.

bug link at https://bugs.openjdk.java.net/browse/JDK-8236177
open webrev at http://cr.openjdk.java.net/~gziemski/8236177_rev1
passes Mach hs-tier1,2,3,4,5


cheers


More information about the hotspot-runtime-dev mailing list