Fyodor Soikin created LOG4NET-431: ------------------------------------- Summary: The AppenderSkeleton.DoAppend methods may cause deadlocks Key: LOG4NET-431 URL: https://issues.apache.org/jira/browse/LOG4NET-431 Project: Log4net Issue Type: Bug Components: Appenders Reporter: Fyodor Soikin
The AppenderSkeleton.DoAppender method calls a few methods (in particular, FilterEvent, PreAppendCheck, and Append), which are virtual. Calling code you don't control from within a synchronization block is a major no-no, thread-safely speaking. It may cause deadlocks - and, in my case, does cause them. In my particular case, the runaway code path starts with calling .ToString() on one of the format arguments. That particular argument is a complex object, whose ToString() implementation calls a few other components, some of which also use [poorly designed] synchronization constructs. -- This message was sent by Atlassian JIRA (v6.2#6252)