shloim opened a new issue, #2169:
URL: https://github.com/apache/logging-log4j2/issues/2169
## Description
Some low probability race condition causes lmax to loop indefinitely on
Thread.yield
## Configuration
-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
-Dlog4j2.enable.threadlocals=true
-Dlog4j2.enable.direct.encoders=true
-XX:CompileCommand=dontinline,org.apache.logging.log4j.core.async.perftest.NoOpIdleStrategy::idle
**Version:** 2.17.1
**Operating system:** Centos 8
**JDK:** OpenJDK 64-Bit Server VM GraalVM LIBGRAAL 20.3.3 (build
11.0.12+5-jvmci-20.3-b06)
## Logs
It would seem that the queue datastructure becomes corrupted and cas=uses
the polling thread to loop infinitely with the following stacktrace:
```
"Log4j2-TF-1-AsyncLogger[AsyncContext@46f5f779]-1" #18 daemon prio=5
os_prio=0 cpu=4404755.82ms elapsed=4733.22s tid=0x00007fed7ade9800 nid=0xcd
runnable [0x00007fed7bffd000]
java.lang.Thread.State: RUNNABLE
at java.lang.Thread.yield([email protected]/Native Method)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.transferAfterCancelledWait([email protected]/AbstractQueuedSynchronizer.java:1752)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos([email protected]/AbstractQueuedSynchronizer.java:2119)
at
com.lmax.disruptor.TimeoutBlockingWaitStrategy.waitFor(TimeoutBlockingWaitStrategy.java:38)
at
com.lmax.disruptor.ProcessingSequenceBarrier.waitFor(ProcessingSequenceBarrier.java:56)
at
com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:159)
at
com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125)
at java.lang.Thread.run([email protected]/Thread.java:829)
```
## Reproduction
This was found on a large production system with very low probability. Using
log4j with the above settings. We don't know the exact case where the polling
thread reaches this state
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]