Quantcast
Channel: Common Language Runtime Internals and Architecture forum
Viewing all articles
Browse latest Browse all 1710

Application Hang When Call System.Runtime.InteropServices.GCHandle.Free()

$
0
0

In Device.Service.exe__PID__324__Date__04_26_2013__Time_10_40_01AM__291__Manual Dump.dmp GC is running in this process.The Thread that triggered the GC is 108

The following threads in Device.Service.exe__PID__324__Date__04_26_2013__Time_10_40_01AM__291__Manual Dump.dmp are waiting for .net garbage collection to finish. Thread 108 triggered the garbage collection.The gargage collector thread wont start doing its work till the time the threads which have pre-emptive GC disabled have finished executing. The following threads havepre-emptive GC disabled 9,12,135,136,141,142,143,146,149,150,151,

 

And Thread "12,135,136,141,142,143,146,149,150,151" is waiting thread "9"

 

Critical Section    0x00551448 

Lock State   Locked

Lock Count   1

Recursion Count   1

Entry Count   0

Contention Count   11

Spin Count   0

Owner Thread   108

Owner Thread System ID   5916

 

 

Critical Section    0x005532c0 

Lock State   Locked

Lock Count   10

Recursion Count   1

Entry Count   0

Contention Count   11

Spin Count   0

Owner Thread   9

Owner Thread System ID   4604

        

        

Thread 9 - System ID 4604

Entry point      0x00000000

Create time    2013-4-26 10:00:27

Time spent in user mode       0 Days 00:00:00.500

Time spent in kernel mode     0 Days 00:00:00.484

 

 

.NET Call Stack

Function

System.Runtime.InteropServices.GCHandle.InternalFree(IntPtr)

System.Runtime.InteropServices.GCHandle.Free()

System.Net.Sockets.SocketAsyncEventArgs.FreeOverlapped(Boolean)

System.Net.Sockets.SocketAsyncEventArgs.Dispose()

NLog.Internal.NetworkSenders.UdpNetworkSender.SocketOperationCompleted(System.Object, System.Net.Sockets.SocketAsyncEventArgs)

System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(System.Net.Sockets.SocketAsyncEventArgs)

System.Net.Sockets.SocketAsyncEventArgs.ExecutionCallback(System.Object)

System.Threading.ExecutionContext.runTryCode(System.Object)

System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)

System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)

System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)

System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)

System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(System.Net.Sockets.SocketError, Int32, System.Net.Sockets.SocketFlags)

System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)

System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)

 

Full Call Stack

Function          Source

ntdll!NtDelayExecution+15   

KERNELBASE!SleepEx+65      

clr!__DangerousSwitchToThread+48    

clr!__SwitchToThread+12      

clr!SpinUntil+3a     

clr!SyncTransferCacheHandles+34        

clr!TableQuickRebalanceCache+59       

clr!TableCacheMissOnFree+67     

clr!TableFreeSingleHandleToCache+56          

clr!HndDestroyHandle+9d    

clr!HndDestroyHandleOfUnknownType+19  

clr!DestroyTypedHandle+16

clr!MarshalNative::GCHandleInternalFree+ca     

System.Runtime.InteropServices.GCHandle.Free()      

System.Net.Sockets.SocketAsyncEventArgs.FreeOverlapped(Boolean)      

System.Net.Sockets.SocketAsyncEventArgs.Dispose()         

System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(System.Net.Sockets.SocketAsyncEventArgs)         

System.Net.Sockets.SocketAsyncEventArgs.ExecutionCallback(System.Object)        

System.Threading.ExecutionContext.runTryCode(System.Object)      

clr!CallDescrWorker+33         

clr!CallDescrWorkerWithHandler+8e   

clr!MethodDesc::CallDescr+194  

clr!MethodDesc::CallTargetWorker+21        

clr!MethodDescCallSite::CallWithValueTypes+1c         

clr!ExecuteCodeWithGuaranteedCleanupHelper+bb   

clr!ReflectionInvocation::ExecuteCodeWithGuaranteedCleanup+138        

System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)     

System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)        

System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(System.Net.Sockets.SocketError, Int32, System.Net.Sockets.SocketFlags)

System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)      

System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)        

clr!CallDescrWorker+33         

clr!CallDescrWorkerWithHandler+8e   

clr!DispatchCallBody+20       

clr!DispatchCallDebuggerWrapper+75         

clr!DispatchCallNoEH+53      

clr!BindIoCompletionCallBack_Worker+c1   

clr!Thread::DoExtraWorkForFinalizer+114   

clr!Thread::ShouldChangeAbortToUnload+101    

clr!Thread::ShouldChangeAbortToUnload+399    

clr!Thread::ShouldChangeAbortToUnload+43a    

clr!ManagedThreadBase::ThreadPool+15    

clr!BindIoCompletionCallbackStubEx+a3      

clr!BindIoCompletionCallbackStub+15

clr!ThreadpoolMgr::CompletionPortThreadStart+4e3          

clr!Thread::intermediateThreadProc+4b      

kernel32!BaseThreadInitThunk+e         

ntdll!__RtlUserThreadStart+70    

ntdll!_RtlUserThreadStart+1b

 

Thread 108 - System ID 5916

Entry point   0x00000000

Create time   2013-4-26 10:00:55

Time spent in user mode   0 Days 00:00:09.375

Time spent in kernel mode   0 Days 00:00:01.656

 

 

 

 

This thread is not fully resolved and may or may not be a problem. Further analysis of these threads may be required.

 

 

 

.NET Call Stack

 

 

 

Function

System.Text.StringBuilder..ctor(System.String, Int32, Int32, Int32)

System.Text.StringBuilder..ctor(Int32)

System.Environment.get_MachineName()

NLog.LayoutRenderers.Log4JXmlEventLayoutRenderer.Append(System.Text.StringBuilder, NLog.LogEventInfo)

NLog.LayoutRenderers.LayoutRenderer.Render(System.Text.StringBuilder, NLog.LogEventInfo)

NLog.LayoutRenderers.LayoutRenderer.Render(NLog.LogEventInfo)

NLog.Layouts.Log4JXmlEventLayout.GetFormattedMessage(NLog.LogEventInfo)

NLog.Layouts.Layout.Precalculate(NLog.LogEventInfo)

NLog.Targets.Target.PrecalculateVolatileLayouts(NLog.LogEventInfo)

NLog.Targets.Wrappers.AsyncTargetWrapper.Write(NLog.Common.AsyncLogEventInfo)

NLog.Targets.Target.WriteAsyncLogEvent(NLog.Common.AsyncLogEventInfo)

NLog.LoggerImpl.WriteToTargetWithFilterChain(NLog.Internal.TargetWithFilterChain, NLog.LogEventInfo, NLog.Common.AsyncContinuation)

NLog.LoggerImpl.Write(System.Type, NLog.Internal.TargetWithFilterChain, NLog.LogEventInfo, NLog.LogFactory)

NLog.Logger.WriteToTargets(NLog.LogEventInfo)

NLog.Logger.Log(NLog.LogEventInfo)

NLogEx.LoggerEx.WriteToLog(NLog.LogLevel, System.Exception, System.String, System.Object[])

……….

 

 

Full Call Stack

 

 

 

Function   Source

clr!StressLog::ETWLogOn+1b   

clr!StressLog::LogOn+1e   

clr!NTGetThreadContext+27   

clr!Thread::GetSafelyRedirectableThreadContext+58   

clr!Thread::HandledJITCase+40   

clr!Thread::SysSuspendForGC+5a6   

clr!WKS::GCHeap::SuspendEE+1dc   

clr!WKS::GCHeap::GarbageCollectGeneration+15f   

clr!WKS::gc_heap::try_allocate_more_space+162   

clr!WKS::gc_heap::allocate_more_space+13   

clr!WKS::GCHeap::Alloc+3d   

clr!Alloc+8d   

clr!FastAllocatePrimitiveArray+d0   

clr!JIT_NewArr1+1b4   

System.Text.StringBuilder..ctor(System.String, Int32, Int32, Int32)   

System.Text.StringBuilder..ctor(Int32)   

System.Environment.get_MachineName()   

NLog.LayoutRenderers.Log4JXmlEventLayoutRenderer.Append(System.Text.StringBuilder, NLog.LogEventInfo)   

NLog.LayoutRenderers.LayoutRenderer.Render(System.Text.StringBuilder, NLog.LogEventInfo)   

NLog.LayoutRenderers.LayoutRenderer.Render(NLog.LogEventInfo)   

NLog.Layouts.Log4JXmlEventLayout.GetFormattedMessage(NLog.LogEventInfo)   

NLog.Layouts.Layout.Precalculate(NLog.LogEventInfo)   

NLog.Targets.Target.PrecalculateVolatileLayouts(NLog.LogEventInfo)   

NLog.Targets.Wrappers.AsyncTargetWrapper.Write(NLog.Common.AsyncLogEventInfo)   

NLog.Targets.Target.WriteAsyncLogEvent(NLog.Common.AsyncLogEventInfo)   

NLog.LoggerImpl.WriteToTargetWithFilterChain(NLog.Internal.TargetWithFilterChain, NLog.LogEventInfo, NLog.Common.AsyncContinuation)   

NLog.LoggerImpl.Write(System.Type, NLog.Internal.TargetWithFilterChain, NLog.LogEventInfo, NLog.LogFactory)   

NLog.Logger.WriteToTargets(NLog.LogEventInfo)   

……….


Viewing all articles
Browse latest Browse all 1710

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>