On Fri, 25 Aug 2023 10:33:49 GMT, Jaikiran Pai <j...@openjdk.org> wrote:

>> src/java.base/share/classes/jdk/internal/logger/LazyLoggers.java line 425:
>> 
>>> 423:      */
>>> 424:     public static final Logger getLogger(String name, Module module) {
>>> 425:         BootstrapLogger.detectBackend();
>> 
>> Suggestion:
>> 
>>         // triggers detection of the backend
>>         BootstrapLogger.detectBackend();
>
> Hello Daniel, Sean, I couldn't understand the need for this method. The 
> changes to `BootstrapLogger` in this PR removes the initialization of 
> `DetectBackend` class while holding a lock on `BootstrapLogger` class in the 
> `BootstrapLogger.useLazyLoggers` method. Wouldn't that be enough?

a deadlock is still possible Jai with forcing class initialization here. The 
new auto test confirms.

here's the interesting calling stack :

"Thread-0" #31 [2241170] prio=5 os_prio=0 cpu=32.77ms elapsed=13.69s 
tid=0x00007fb0b019bf10 nid=2241170 waiting on condition  [0x00007fb01ac29000]
   java.lang.Thread.State: RUNNABLE
        at 
jdk.internal.logger.BootstrapLogger.useLazyLoggers(java.base@22-internal/BootstrapLogger.java:952)
        - waiting on the Class initialization monitor for 
jdk.internal.logger.BootstrapLogger$DetectBackend
        at 
jdk.internal.logger.LazyLoggers.getLazyLogger(java.base@22-internal/LazyLoggers.java:462)
        at 
jdk.internal.logger.LazyLoggers.getLogger(java.base@22-internal/LazyLoggers.java:437)
        at java.lang.System.getLogger(java.base@22-internal/System.java:1822)
        at 
jdk.internal.event.EventHelper.isLoggingSecurity(java.base@22-internal/EventHelper.java:148)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/15404#discussion_r1305856639

Reply via email to