RFR: 8234509: Race in macOS os::processor_id()

erik.osterlund at oracle.com erik.osterlund at oracle.com
Thu Nov 21 09:15:27 UTC 2019


Hi,

In os::processor_id() on macOS, a CAS protects initialization of 
processor ID number given an APIC id. However, the CAS is not converted 
properly to a boolean determining whether it succeeded or failed. The 
implicit boolean conversion is wrong, allowing multiple threads to 
increment the next processor ID. The result is that if another thread 
runs on a different APIC id, we can get IDs that are higher than the 
number of processors.

Bug:
https://bugs.openjdk.java.net/browse/JDK-8234509

Webrev:
http://cr.openjdk.java.net/~eosterlund/8234509/webrev.00/

Thanks,
/Erik


More information about the hotspot-runtime-dev mailing list