Skip to content

Suspect deadlock in InternalLoggerRegistry (intermittent) #3399

Closed
@nilsson-petter

Description

@nilsson-petter

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.

Metadata

Metadata

Assignees

Labels

bugIncorrect, unexpected, or unintended behavior of existing code

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions