You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Async appender checks dispatcher thread liveness and then only adds to logging buffer.
However If the dispatcher thread dies just after this liveness check and logging buffer is already full ( in multi-threaded application with too much logging happening ) then this thread gets blocked forever ( refer 1st snapshot)
To make it worse; it keeps holding a lock on Rootlogger which makes other threads blocked as well ( refer 2nd snapshot )
The text was updated successfully, but these errors were encountered:
took thread dump of running application and saw below as per snapshot. We have a uncaught exception handler which logs error.
in this cases; dispatcher thread is not yet "dead" and like other logging threads; it is stuck trying to get lock on root logger. However it reached here because of an uncaught exception and in absence of uncaught exception handler; it would have died and led to same problem for other logging threads.
Async appender checks dispatcher thread liveness and then only adds to logging buffer.
However If the dispatcher thread dies just after this liveness check and logging buffer is already full ( in multi-threaded application with too much logging happening ) then this thread gets blocked forever ( refer 1st snapshot)
To make it worse; it keeps holding a lock on Rootlogger which makes other threads blocked as well ( refer 2nd snapshot )
The text was updated successfully, but these errors were encountered: