Closed
Description
Description
Intermittent deadlock/thread starvation on startup in InternalLoggerRegistry#getLoggers
on Spring Boot 3.3.5 application.
Configuration
Version:
2.24.3
Operating system:
Red Hat Enterprise Linux 8.10 (Ootpa)
Kernel: Linux 4.18.0-553.27.1.el8_10.x86_64
JDK:
openjdk version "21.0.5" 2024-10-15 LTS
OpenJDK Runtime Environment (Red_Hat-21.0.5.0.10-1) (build 21.0.5+10-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-21.0.5.0.10-1) (build 21.0.5+10-LTS, mixed mode, sharing)
Logs
I can't find the thread that has locked <0x00000000e01f0be0>
.
"Log4j2-TF-3-ConfigurationFileWatcher-3" #275 [1024631] daemon prio=5 os_prio=0 cpu=9,61ms elapsed=1901,81s tid=0x00007f4164037f80 nid=1024631 waiting on condition [0x00007f414c0bf000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@21.0.5/Native Method)
- parking to wait for <0x00000000e01f0be0> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(java.base@21.0.5/LockSupport.java:221)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@21.0.5/AbstractQueuedSynchronizer.java:754)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(java.base@21.0.5/AbstractQueuedSynchronizer.java:1079)
at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(java.base@21.0.5/ReentrantReadWriteLock.java:738)
at org.apache.logging.log4j.core.util.internal.InternalLoggerRegistry.getLoggers(InternalLoggerRegistry.java:84)
at org.apache.logging.log4j.core.LoggerContext.updateLoggers(LoggerContext.java:812)
at org.apache.logging.log4j.core.LoggerContext.updateLoggers(LoggerContext.java:802)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:675)
at org.apache.logging.log4j.core.LoggerContext.onChange(LoggerContext.java:828)
- locked <0x00000000e01f0a20> (a org.apache.logging.log4j.core.LoggerContext)
at org.apache.logging.log4j.core.util.AbstractWatcher$ReconfigurationRunnable.run(AbstractWatcher.java:97)
at java.lang.Thread.runWith(java.base@21.0.5/Thread.java:1596)
at java.lang.Thread.run(java.base@21.0.5/Thread.java:1583)
Reproduction
Happens intermittently on deploy. Can't reproduce it at will.