logging-log4net-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dan K (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LOG4NET-551) LockRecursionException when using File Appenders
Date Mon, 06 Mar 2017 13:11:33 GMT

    [ https://issues.apache.org/jira/browse/LOG4NET-551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15897243#comment-15897243
] 

Dan K commented on LOG4NET-551:
-------------------------------

Hi Stefan, here is a little more background/detail/context with issue we are currently seeing
in v2.0.7:

1) During latest development cycle, we upgraded straight from version 1.2.11 to v2.0.6, then
the same week to v2.0.7 with intent to use the latest version for upcoming release. As you
are aware, there have many bugs fixed/improvements made since 1.2.11.
2) We didn't see this exception until the upgrade to v2.0.7 which coincides with your last
comment and also what the latest fix in v2.0.8 addresses (LockExcursionException). We wouldn't
have known about this error prior since it wasn't present in 1.2.11. I wasn't involved in
the logging development efforts during that time and not sure why this wasn't upgraded sooner.
3: Here is the consistent/only exception we see with log4net internal debugging on using v2.0.7:

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 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)


> 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)

Mime
View raw message