[ https://issues.apache.org/jira/browse/LOG4NET-551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15896955#comment-15896955 ]
Stefan Bodewig commented on LOG4NET-551: ---------------------------------------- The limiting factor is time available to those who do the work of cutting and vetting a release. We are all volunteers here in the case of 2.0.7 it just happened to be the case that I had time at hand (vacation). OTOH I've not considered this problem to be wide-spread given it must have happened ever since log4net started using {{ReaderWriterLockSlim}} and it looked as if it had never been reported before. LOG4NET-466 might be an earlier report but unfortunately the reporter never responded when asked whether the problem was fixed with 1.2.14 - and so I assumed it was a duplicate of LOG4NET-443. I'll try to carve out some time for cutting a release, but if your release date depends on us, then you should seriously consider building log4net from sources yourself. At the very least you should build it from source in order to verify the fix actually fixes your problem - and we are not looking at a different cause of a problem that happens to show up with the same symptoms. > LockRecursionException when using File Appenders > ------------------------------------------------ > > Key: LOG4NET-551 > URL: https://issues.apache.org/jira/browse/LOG4NET-551 > Project: Log4net > Issue Type: Bug > Affects Versions: 2.0.7 > Reporter: Matthew Lefoster > Priority: Minor > Fix For: 2.0.8 > > > I have been getting the following exception on the console: > {quote} > log4net:ERROR Exception while logging > System.Threading.LockRecursionException: Recursive read lock acquisitions not > allowed in this mode. > at > System.Threading.ReaderWriterLockSlim.TryEnterReadLockCore(TimeoutTracker > timeout) > at System.Threading.ReaderWriterLockSlim.TryEnterReadLock(TimeoutTracker > timeout) > at System.Threading.ReaderWriterLockSlim.EnterReadLock() > at log4net.Util.ReaderWriterLock.AcquireReaderLock() > at log4net.Repository.Hierarchy.Logger.CallAppenders(LoggingEvent > loggingEvent) > at log4net.Repository.Hierarchy.Logger.ForcedLog(Type > callerStackBoundaryDeclaringType, Level level, Object message, Exception > exception) > at log4net.Repository.Hierarchy.Logger.Log(Type > callerStackBoundaryDeclaringType, Level level, Object message, Exception > exception) > {quote} > I have a number of different appenders, but this only happens when I am using > `log4net.Appender.FileAppender`. > Using a debugger, I was able to narrow it down to this line (I replaced curly > brackets with square brackets because otherwise JIRA interprets them as > macros): > {quote} > Logger.DebugFormat("[1] Executing SQL: [0][2][0]With parameters: [3]", > Environment.NewLine, methodName, sql, new > ToStringWrapper(parameters)); > {quote} > My first thought was that ToStringWrapper() was throwing an exception or > generating another logging call. But If I put breakpoints at the log call and > at the first line of ToStringWrapper.ToString, the exception will show up in > the console between those two points. > Oddly enough, if I "step into" the logging call instead of just "continuing" > and letting the breakpoints handle it, no exception happens. -- This message was sent by Atlassian JIRA (v6.3.15#6346)