Steffen Offermann created LOG4J2-1350:
-----------------------------------------

             Summary: Circuit Breaker for log system to avoid DOS by recursion
                 Key: LOG4J2-1350
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1350
             Project: Log4j 2
          Issue Type: Improvement
          Components: Core
    Affects Versions: 2.5
            Reporter: Steffen Offermann


We have encountered the following situation: A method in an application thread 
was recursively calling itself again and again, until the inevitable 
{{StackOverflowException}} occurred. Other application threads worked fine, but 
since we use asynchronous logging, the Log4j ringbuffer ran full because of the 
thread that was running amok. As a consequence none of the other threads could 
issue any log messages any more. 

In production systems we MUST be able to see log messages, otherwise we have 
hardly a means to tell when something goes wrong and to discover problems like 
this. 

So my suggestion would be to add a circuit breaker pattern to the Log4j core 
system (unless there already is one that I'm not aware of), that would track 
the frequency of log events per thread and open once a dangerous threshold has 
been reached or exceeded. That way other threads would still be able to send 
log events once the ring buffer is free again.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to