Quantcast
Channel: ClearScript
Viewing all articles
Browse latest Browse all 2297

Commented Issue: [BUG] Hang on Application pool recycle [119]

0
0
Hi,

Using React.NET 3.0.1 which uses ClearScript.V8 5.4.8 following hang is observed on recycling application pool
```
.NET Call Stack


.SharedPtr.Release(SharedPtr*)+d7
[[InlinedCallFrame] (.Decrement)] .RefCount.Decrement(RefCount*)
Microsoft.ClearScript.V8.V8ContextProxyImpl.!V8ContextProxyImpl()+4e
Microsoft.ClearScript.V8.V8ContextProxyImpl.Dispose(Boolean)+1f
[[DebuggerU2MCatchHandlerFrame]]
[[ContextTransitionFrame]]
[[GCFrame]]
[[DebuggerU2MCatchHandlerFrame]]

Full Call Stack

ntdll!NtWaitForSingleObject+14
KERNELBASE!WaitForSingleObjectEx+8f
v8_x64!v8::Extension::dependencies+329ac
v8_x64!v8::ExternalResourceVisitor::VisitExternalString+28187
v8_x64!v8::ExternalResourceVisitor::VisitExternalString+1a3
v8_x64!v8::ExternalResourceVisitor::VisitExternalString+533b
ClearScriptV8_64+14216
ClearScriptV8_64+120e4
ClearScriptV8_64+13e3f
ClearScriptV8_64+50a8
<Module>.SharedPtr<V8Context>.Release(SharedPtr<V8Context>*)+d7
[[InlinedCallFrame] (<Module>.Decrement)] <Module>.RefCount.Decrement(RefCount*)
Microsoft.ClearScript.V8.V8ContextProxyImpl.!V8ContextProxyImpl()+4e
Microsoft.ClearScript.V8.V8ContextProxyImpl.Dispose(Boolean)+1f
clr!FastCallFinalizeWorker+6
clr!ETW::GCLog::SendFinalizeObjectEvent+c9
clr!MethodTable::CallFinalizer+b5
clr!CallFinalizer+5e
clr!FinalizerThread::DoOneFinalization+95
clr!FinalizerThread::FinalizeAllObjects+133
clr!FinalizerThread::FinalizeAllObjects_Wrapper+18
clr!Frame::Push+59
clr!PEDecoder::GetNativeCodeManagerTable+170
clr!PEDecoder::GetNativeCodeManagerTable+99
[[DebuggerU2MCatchHandlerFrame]]
clr!Thread::ShouldChangeAbortToUnload+45
clr!Thread::DoADCallBack+109
[[ContextTransitionFrame]]
clr!Frame::Push+a2
clr!FinalizerThread::DoOneFinalization+1f9
[[GCFrame]]
clr!FinalizerThread::FinalizeAllObjects+133
clr!FinalizerThread::FinalizerThreadWorker+bb
clr!Frame::Push+59
clr!PEDecoder::GetNativeCodeManagerTable+170
clr!PEDecoder::GetNativeCodeManagerTable+99
[[DebuggerU2MCatchHandlerFrame]]
clr!FinalizerThread::FinalizerThreadStart+10a
clr!Thread::intermediateThreadProc+86
kernel32!BaseThreadInitThunk+14
ntdll!RtlUserThreadStart+21
```
Comments: I've checked out tag 5.4.8. Here is a stack with SOSex loaded ``` Current frame: ntdll!NtWaitForSingleObject+0x14 Child-SP RetAddr Caller, Callee 000000eb4437ed70 00007ffaf9c4988f KERNELBASE!WaitForSingleObjectEx+0x9f, calling ntdll!NtWaitForSingleObject 000000eb4437ed90 00007ffaf9ffc97b ucrtbase!free_base+0x1b, calling ntdll!RtlFreeHeap 000000eb4437edf0 00007ffaf9ffc97b ucrtbase!free_base+0x1b, calling ntdll!RtlFreeHeap 000000eb4437ee10 00007ffabb02554c v8_x64!v8::internal::MemoryAllocator::TearDown+0x3c [c:\git\clearscript\clearscript\v8\v8\build\v8-x64\src\heap\spaces.cc:314], calling v8_x64!v8::base::Semaphore::Wait [c:\git\clearscript\clearscript\v8\v8\build\v8-x64\src\base\platform\semaphore.cc:158] 000000eb4437ee20 00007ffabae099eb v8_x64!v8::internal::StoreBuffer::TearDown+0x2b [c:\git\clearscript\clearscript\v8\v8\build\v8-x64\src\heap\store-buffer.cc:56], calling v8_x64!operator delete [f:\dd\vctools\crt\vcstartup\src\heap\delete_scalar_size.cpp:14] 000000eb4437ee50 00007ffabad9e237 v8_x64!v8::internal::Heap::TearDown+0x477 [c:\git\clearscript\clearscript\v8\v8\build\v8-x64\src\heap\heap.cc:5591], calling v8_x64!v8::internal::MemoryAllocator::TearDown [c:\git\clearscript\clearscript\v8\v8\build\v8-x64\src\heap\spaces.cc:313] 000000eb4437ee90 00007ffabad76283 v8_x64!v8::internal::Isolate::Deinit+0x193 [c:\git\clearscript\clearscript\v8\v8\build\v8-x64\src\isolate.cc:2150], calling v8_x64!v8::internal::Heap::TearDown [c:\git\clearscript\clearscript\v8\v8\build\v8-x64\src\heap\heap.cc:5474] 000000eb4437eec0 00007ffabad7b41b v8_x64!v8::internal::Isolate::TearDown+0x5b [c:\git\clearscript\clearscript\v8\v8\build\v8-x64\src\isolate.cc:2077], calling v8_x64!v8::internal::Isolate::Deinit [c:\git\clearscript\clearscript\v8\v8\build\v8-x64\src\isolate.cc:2102] 000000eb4437ef00 00007ffad0074216 ClearScriptV8_64!V8IsolateImpl::~V8IsolateImpl+0x286 [c:\git\clearscript\clearscript\v8\clearscriptv8\v8isolateimpl.cpp:656], calling v8_x64!v8::Isolate::Dispose [c:\git\clearscript\clearscript\v8\v8\build\v8-x64\src\api.cc:7473] 000000eb4437efb0 00007ffacf26886f msvcp140!__crtReleaseSRWLockExclusive+0x23 [f:\dd\vctools\crt\crtw32\misc\winapisupp.cpp:612], calling msvcp140!_guard_check_icall [f:\dd\vctools\crt\vcstartup\src\misc\checkcfg.c:61] 000000eb4437efe0 00007ffad00720e4 ClearScriptV8_64!V8IsolateImpl::`scalar deleting destructor'+0x14, calling ClearScriptV8_64!V8IsolateImpl::~V8IsolateImpl [c:\git\clearscript\clearscript\v8\clearscriptv8\v8isolateimpl.cpp:641] 000000eb4437f010 00007ffad0073e3f ClearScriptV8_64!V8IsolateImpl::CallWithLockNoWait+0x1df [c:\git\clearscript\clearscript\v8\clearscriptv8\v8isolateimpl.cpp:628] 000000eb4437f040 00007ffadf56d7ef clr!PreStubWorker+0x2e0, calling kernel32!SetLastErrorStub 000000eb4437f0c0 00007ffad00650a8 ClearScriptV8_64!V8ContextImpl::Destroy+0x68 [c:\git\clearscript\clearscript\v8\clearscriptv8\v8contextimpl.cpp:530], calling ClearScriptV8_64!V8IsolateImpl::CallWithLockNoWait [c:\git\clearscript\clearscript\v8\clearscriptv8\v8isolateimpl.cpp:613] 000000eb4437f150 00007ffa84f451fb (MethodDesc 00007ffa8518d600 +0xcb <Module>.SharedPtr<V8Context>.Release(SharedPtr<V8Context>*)) 000000eb4437f1b0 00007ffa84f451fb (MethodDesc 00007ffa8518d600 +0xcb <Module>.SharedPtr<V8Context>.Release(SharedPtr<V8Context>*)) 000000eb4437f200 00007ffa84f7121e (MethodDesc 00007ffa851c0a38 +0x4e Microsoft.ClearScript.V8.V8ContextProxyImpl.!V8ContextProxyImpl()), calling (MethodDesc 00007ffa8518d600 +0 <Module>.SharedPtr<V8Context>.Release(SharedPtr<V8Context>*)) 000000eb4437f2b0 00007ffa84f47d1e (MethodDesc 00007ffa851c0a78 +0x1e Microsoft.ClearScript.V8.V8ContextProxyImpl.Dispose(Boolean)), calling 00007ffa84f41aa8 (stub for Microsoft.ClearScript.V8.V8ContextProxyImpl.!V8ContextProxyImpl()) 000000eb4437f2f0 00007ffadf5666c6 clr!FastCallFinalizeWorker+0x6 000000eb4437f320 00007ffadf71a741 clr!ETW::GCLog::SendFinalizeObjectEvent+0xc9, calling clr!FastCallFinalizeWorker 000000eb4437f340 00007ffadf728650 clr!MethodTable::IsInitError+0x1d, calling clr!DomainLocalModule::GetClassFlags 000000eb4437f370 00007ffadf71a6c9 clr!MethodTable::CallFinalizer+0xb5, calling clr!ETW::GCLog::SendFinalizeObjectEvent+0x74 000000eb4437f3a0 00007ffadf566649 clr!CallDescrWorkerWithHandler+0x4e, calling clr!CallDescrWorkerInternal 000000eb4437f3c0 00007ffadf71a602 clr!CallFinalizer+0x5e, calling clr!MethodTable::CallFinalizer 000000eb4437f3d0 00007ffaf9c3a8d4 KERNELBASE!SetThreadLocale+0x14, calling KERNELBASE!NlsValidateLocale 000000eb4437f400 00007ffadf71a4b9 clr!FinalizerThread::DoOneFinalization+0x95, calling clr!CallFinalizer 000000eb4437f480 00007ffadf72d4ed clr!DistributeEventReliably+0x269, calling clr!_security_check_cookie 000000eb4437f4a0 00007ffadf719ce0 clr!SVR::GCHeap::GetNextFinalizableObject+0x5c, calling clr!SVR::CFinalize::IsSegEmpty 000000eb4437f4e0 00007ffadf71a3cc clr!FinalizerThread::FinalizeAllObjects+0x124, calling clr!FinalizerThread::DoOneFinalization 000000eb4437f530 00007ffadf71bc87 clr!FinalizerThread::FinalizeAllObjects_Wrapper+0x18, calling clr!FinalizerThread::FinalizeAllObjects 000000eb4437f560 00007ffadf567c9d clr!Frame::Push+0x59 000000eb4437f5a0 00007ffadf567c18 clr!MarshalInfo::SetupArgumentSizes+0x234, calling clr!Frame::Push+0x20 000000eb4437f5b0 00007ffadf72d349 clr!DistributeEventReliably+0xa9, calling clr!CLRException::HandlerState::CleanupTry 000000eb4437f600 00007ffadf56a114 clr!Thread::SetLastThrownObject+0x35, calling clr!StressLog::LogOn 000000eb4437f670 00007ffadf56737d clr!FrameWithCookie<DebuggerU2MCatchHandlerFrame>::FrameWithCookie<DebuggerU2MCatchHandlerFrame>+0x26, calling clr!Frame::Push 000000eb4437f690 00007ffadf56718c clr!SystemDomain::GetAppDomainAtId+0x40, calling clr!AppDomain::CanThreadEnter 000000eb4437f6a0 00007ffadf567b56 clr!MarshalInfo::SetupArgumentSizes+0x15d, calling clr!MarshalInfo::SetupArgumentSizes+0x1c8 000000eb4437f6b0 00007ffadf85c7b5 clr!AppDomain::RaiseUnloadDomainEvent+0x71, calling clr!CLRException::HandlerState::CleanupTry 000000eb4437f6c0 00007ffadf566051 clr!ClrFlsIncrementValue+0x29 000000eb4437f730 00007ffadf56a864 clr!Thread::ShouldChangeAbortToUnload+0x45, calling clr!MarshalInfo::SetupArgumentSizes+0xe8 000000eb4437f760 00007ffadf5b2fe9 clr!Thread::DoADCallBack+0x109 000000eb4437f790 00007ffadf653857 clr!Thread::DoADCallBack+0x27a, calling clr!Thread::ReturnToContext 000000eb4437f840 00007ffafcbc0f30 ntdll!RtlFreeHeap+0x150, calling ntdll!RtlGetCurrentServiceSessionId 000000eb4437f850 00007ffadf565ff6 clr!CrstBase::Enter+0x6a, calling ntdll!RtlTryEnterCriticalSection 000000eb4437f910 00007ffadf56a845 clr!Frame::Push+0xa2, calling clr!Thread::DoADCallBack 000000eb4437f920 00007ffadf56af62 clr!FrameWithCookie<GCFrame>::FrameWithCookie<GCFrame>+0x42, calling clr!GetThread 000000eb4437f950 00007ffadf71bc33 clr!FinalizerThread::DoOneFinalization+0x1f2, calling clr!Frame::Push+0x20 000000eb4437f9f0 00007ffadf719ce0 clr!SVR::GCHeap::GetNextFinalizableObject+0x5c, calling clr!SVR::CFinalize::IsSegEmpty 000000eb4437fa30 00007ffadf71a3cc clr!FinalizerThread::FinalizeAllObjects+0x124, calling clr!FinalizerThread::DoOneFinalization 000000eb4437fa80 00007ffadf71977b clr!FinalizerThread::FinalizerThreadWorker+0xbb, calling clr!FinalizerThread::FinalizeAllObjects 000000eb4437fa88 00007ffadf85d700 clr!GetLogicalCpuCount+0x8a, calling clr!GetLogicalCpuCountFromOS 000000eb4437fac0 00007ffadf567c9d clr!Frame::Push+0x59 000000eb4437fb00 00007ffadf567c18 clr!MarshalInfo::SetupArgumentSizes+0x234, calling clr!Frame::Push+0x20 000000eb4437fbb0 00007ffadf69bbc2 clr!Wrapper<void * __ptr64,&DoNothing<void * __ptr64>,&VoidCloseHandle,-1,&CompareDefault<void * __ptr64>,2,1>::~Wrapper<void * __ptr64,&DoNothing<void * __ptr64>,&VoidCloseHandle,-1,&CompareDefault<void * __ptr64>,2,1>+0x30, calling kernel32!CloseHandle 000000eb4437fbd0 00007ffadf56737d clr!FrameWithCookie<DebuggerU2MCatchHandlerFrame>::FrameWithCookie<DebuggerU2MCatchHandlerFrame>+0x26, calling clr!Frame::Push 000000eb4437fbf0 00007ffadf6b9d96 clr!ProfilingAPIAttachDetach::CreateAttachThread+0x76, calling clr!Wrapper<void * __ptr64,&DoNothing<void * __ptr64>,&VoidCloseHandle,-1,&CompareDefault<void * __ptr64>,2,1>::~Wrapper<void * __ptr64,&DoNothing<void * __ptr64>,&VoidCloseHandle,-1,&CompareDefault<void * __ptr64>,2,1> 000000eb4437fc00 00007ffadf567b56 clr!MarshalInfo::SetupArgumentSizes+0x15d, calling clr!MarshalInfo::SetupArgumentSizes+0x1c8 000000eb4437fc10 00007ffadf6a87d3 clr!EEConfig::GetConfigDWORD_DontUse_+0x3b, calling clr!EEConfig::GetConfiguration_DontUse_ 000000eb4437fc90 00007ffadf69f87a clr!FinalizerThread::FinalizerThreadStart+0x10a, calling clr!MarshalInfo::SetupArgumentSizes+0xe8 000000eb4437fcd0 00007ffadf566929 clr!EEHeapFreeInProcessHeap+0x45, calling kernel32!HeapFreeStub 000000eb4437fd30 00007ffadf6631cf clr!Thread::intermediateThreadProc+0x86 000000eb4437fdb0 00007ffadf6631af clr!Thread::intermediateThreadProc+0x66, calling clr!_chkstk 000000eb4437fdf0 00007ffafa102774 kernel32!BaseThreadInitThunk+0x14, calling ntdll!LdrpDispatchUserCallTarget 000000eb4437fe20 00007ffafcc00d61 ntdll!RtlUserThreadStart+0x21, calling ntdll!LdrpDispatchUserCallTarget ```

Viewing all articles
Browse latest Browse all 2297