Victor Sergienko | 17 Jun 17:32

I believe I found a deadlock

Hi gentlemen,

I have a code that hangs up under debugger from time to time.
There are two threads stopped, one stopped in TraceAppender.Append,
another in AppenderSkeleton.DoAppend trying to acquire lock(this).
There are two active Appenders, TraceAppender (for VisualStudio
console) and RollingLogFileAppender.

Thread stacks:
thread 1:

 	[In a sleep, wait, or join]	
 	System.Windows.Threading.DispatcherSynchronizationContext.Wait(System.IntPtr[]
waitHandles, bool waitAll, int millisecondsTimeout)
 	System.Threading.SynchronizationContext.InvokeWaitMethodHelper(System.Threading.SynchronizationContext
syncContext, System.IntPtr[] waitHandles, bool waitAll, int
millisecondsTimeout)
 	[Native to Managed Transition]	
 	[Managed to Native Transition]	
 	log4net.Appender.TraceAppender.Append(log4net.Core.LoggingEvent
loggingEvent = {log4net.Core.LoggingEvent})	C#
 	log4net.Appender.AppenderSkeleton.DoAppend(log4net.Core.LoggingEvent
loggingEvent = {log4net.Core.LoggingEvent})	C#
 	log4net.Util.AppenderAttachedImpl.AppendLoopOnAppenders(log4net.Core.LoggingEvent
loggingEvent = {log4net.Core.LoggingEvent})	C#
 	log4net.Repository.Hierarchy.Logger.CallAppenders(log4net.Core.LoggingEvent
loggingEvent = {log4net.Core.LoggingEvent})	C#
 	log4net.Repository.Hierarchy.Logger.ForcedLog(System.Type
callerStackBoundaryDeclaringType = {System.RuntimeType},
log4net.Core.Level level = {log4net.Core.Level}, object message =
(Continue reading)


Gmane