On Tue, 29 Apr 2025 19:02:20 GMT, Chen Liang <li...@openjdk.org> wrote:

> The bug description seems like it is a fault in the JVM implementation - if 
> that is the case, a core library bypass is unreliable, as such faults might 
> happen to other classes and cause other consequences; and we might need to 
> fix it from the VM runtime or compiler side, as the original report implies.

It seems to about nested parking that can arise with the first use of 
LockSupport.park from a class with a defining class loader that is not the boot 
loader. The first usage, say an invokestatic to call the park method, will call 
the loadClass on caller's defining class loader.  For the app class loader, and 
many other custom class loaders, that are parallel capable, then there will be 
a CHM to support the mapping of class names to locks. Contention on the CHM 
seems to have lead to the nested park.  CHM and a lot of other code has changed 
since and not clear that it will duplicate easily now. Martin's ParkLoops test 
from the 2015 issue is in the test tree but it might be that a variant of this 
that uses a custom class loader that overrides getClassLoadingLock or parks in 
loadClass might be able to trigger it. As a custom class loader's loadClass can 
do anything then it almost feels like creating a class loader needs it have it 
recorded immediately as an initiating class loader. Hopef
 ully David will remember more of this when he gets back.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/24952#issuecomment-2841672692

Reply via email to