Uploaded image for project: 'Log4net'
  1. Log4net
  2. LOG4NET-431

The AppenderSkeleton.DoAppend methods may cause deadlocks

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Appenders
    • None

    Description

      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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            fsoikin Fyodor Soikin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: