[
https://issues.apache.org/jira/browse/LOG4J2-1324?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15207479#comment-15207479
]
Remko Popma commented on LOG4J2-1324:
-------------------------------------
If it is possible to work around this in log4j, we will. I'm still trying to
understand what is happening.
I understand now that the AsyncLoggerConfig-2 thread is waiting for a task to
be submitted to the ThreadPoolExecutor (that's the LinkedBlockingQueue in the
stack dump).
I don't think the AsyncLoggerConfig-1 thread died while holding on to a lock
(not sure if that's even possible), but I suspect the Disruptor is not designed
to let another thread take over when the original consumer thread dies. The
consumer thread is not supposed to die.
Your analysis showed that the FatalExceptionHandler is installed, but this did
not prevent the thread from dying. I don't understand why the thread can still
die with this ExceptionHandler installed: this handler handles Throwables...
Was the log message from that handler captured anywhere?
> Async Logger - Consumer thread dying - new thread unable to start
> -----------------------------------------------------------------
>
> Key: LOG4J2-1324
> URL: https://issues.apache.org/jira/browse/LOG4J2-1324
> Project: Log4j 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.2
> Environment: LOG4J CORE Release Version 2.2
> Disruptor Bundle-Version 3.3.2
> ORACLE jdk1.8.0_45
> Linux 2.6.32-573.el6.x86_64, amd64
> Reporter: Ron Gonzalez
> Attachments: 2016-03-18_17-44-06.jpg, 2016-03-22_8-32-37.jpg,
> BatchEventProcessor.png, log4j2_config.xml
>
>
> We are seeing a situation where the consumer thread
> "AsyncLoggerConfig-1" is apparently dying.
> We do see a new consumer thread trying to start up, but it is blocked
> waiting for a lock, so no logging is happening.
> Is this a defect in log4j?
> Is the original consumer thread dying due to perhaps an unhandled exception ?
> Is that original consumer thread not terminating gracefully and
> releasing the locked object so the new consumer thread can start?
> Please see attached screenshot. Top of screen is normal
> asyncloggerconfig thread (consumer).
> Bottom is thread trace when logging stops, we no longer see an
> "asyncloggerconfig-1" thread, instead a new thread is trying to start
> but never does "asyncloggerconfig-2".
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]