You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Venkatesh (Jira)" <ji...@apache.org> on 2022/10/25 09:28:00 UTC

[jira] [Created] (LOG4J2-3623) Application went unresponsive because of log4j2

Venkatesh created LOG4J2-3623:
---------------------------------

             Summary: Application went unresponsive because of log4j2
                 Key: LOG4J2-3623
                 URL: https://issues.apache.org/jira/browse/LOG4J2-3623
             Project: Log4j 2
          Issue Type: Bug
    Affects Versions: 2.17.1
         Environment: Java version - openjdk-1.8.0.191

Log4j2 version - 2.17.1

OS - Linux, 2.6.32

Ring Buffer Size : 1MB

 
            Reporter: Venkatesh


We have seen this behavior in during high load of log events. Where Logging Got Stropped and Application Went to not responsive state.
Ring Buffer Size : 128



Here is the one of the Trace from Thread Dump: I have taken thread dumps thrice, every time the states of the threads are at same. One producer thread went to TIMED WAITING sate, others went o BLOCKED and consumer (AsynchLogger) thread went into TIMED_WAITING state.

Producer 1 :

"Scheduler_Worker-7" #143 prio=5 os_prio=0 tid=0x00007fae2ac55800 nid=0x18fc runnable [0x00007faceab12000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:338)
    at com.lmax.disruptor.MultiProducerSequencer.next(MultiProducerSequencer.java:136)
    at com.lmax.disruptor.MultiProducerSequencer.next(MultiProducerSequencer.java:105)
    at com.lmax.disruptor.RingBuffer.publishEvent(RingBuffer.java:465)
    at com.lmax.disruptor.dsl.Disruptor.publishEvent(Disruptor.java:331)
    at org.apache.logging.log4j.core.async.AsyncLoggerDisruptor.enqueueLogMessageWhenQueueFull(AsyncLoggerDisruptor.java:236)
    - locked <0x00000005522ce890> (a java.lang.Object)
    at org.apache.logging.log4j.core.async.AsyncLogger.handleRingBufferFull(AsyncLogger.java:246)

 

Producer 2:

"Scheduler_Worker-8" #144 prio=5 os_prio=0 tid=0x00007fae2a79b000 nid=0x18fd waiting for monitor entry [0x00007faceaa12000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.apache.logging.log4j.core.async.AsyncLoggerDisruptor.enqueueLogMessageWhenQueueFull(AsyncLoggerDisruptor.java:236)
    - waiting to lock <0x00000005522ce890> (a java.lang.Object)
    at org.apache.logging.log4j.core.async.AsyncLogger.handleRingBufferFull(AsyncLogger.java:246)
    at org.apache.logging.log4j.core.async.AsyncLogger.publish(AsyncLogger.java:230)

 

Consumer:

"Log4j2-TF-4-AsyncLogger[DefaultAsyncContext@main]-2" #17 daemon prio=5 os_prio=0 tid=0x00007fae29692000 nid=0x1806 runnable [0x00007fadfea4d000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x0000000553fa0d98> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
    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(Thread.java:748)

 
Is this is known issue? What is the way to fix this?
h4.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)