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'm no longer able to reproduce this deadlock. It restarts successfully, but now crashes on start with automatic restart afterwards. Crash is intermittent. Weren't able to repro with attached debugger. Here is a stack trace ``` Exception: System.Reflection.TargetInvocationException Message: Exception has been thrown by the target of an invocation. StackTrace: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, Object[] args) at Microsoft.ClearScript.V8.V8Proxy.CreateImpl[T](Object[] args) at Microsoft.ClearScript.V8.V8ScriptEngine..ctor(V8Runtime runtime, String name, V8RuntimeConstraints constraints, V8ScriptEngineFlags flags, Int32 debugPort) at JavaScriptEngineSwitcher.V8.V8JsEngine..ctor(V8Settings settings) at JavaScriptEngineSwitcher.V8.V8JsEngineFactory.CreateEngine() at React.JavaScriptEngineFactory.GetFactory(JsEngineSwitcher jsEngineSwitcher, Boolean allowMsie) at React.JavaScriptEngineFactory..ctor(JsEngineSwitcher jsEngineSwitcher, IReactSiteConfiguration config, IFileSystem fileSystem) at lambda_method(Closure , Object[] ) at React.TinyIoC.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) at React.TinyIoC.TinyIoCContainer.SingletonFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) at React.TinyIoC.TinyIoCContainer.ResolveInternal(TypeRegistration registration, NamedParameterOverloads parameters, ResolveOptions options) at React.TinyIoC.TinyIoCContainer.ConstructType(Type requestedType, Type implementationType, ConstructorInfo constructor, NamedParameterOverloads parameters, ResolveOptions options) at React.TinyIoC.TinyIoCContainer.CustomObjectLifetimeFactory.GetObject(Type requestedType, TinyIoCContainer container, NamedParameterOverloads parameters, ResolveOptions options) at React.TinyIoC.TinyIoCContainer.ResolveInternal(TypeRegistration registration, NamedParameterOverloads parameters, ResolveOptions options) at React.TinyIoC.TinyIoCContainer.Resolve[ResolveType]() at React.Web.Mvc.HtmlHelperExtensions.get_Environment() at React.Web.Mvc.HtmlHelperExtensions.React[T](HtmlHelper htmlHelper, String componentName, T props, String htmlTag, String containerId, Boolean clientOnly, Boolean serverOnly, String containerClass) InnerException: System.AccessViolationException Message: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. StackTrace: at V8Context.Create(SharedPtr<V8Isolate>* , StdString* , Boolean , Boolean , Int32 ) at Microsoft.ClearScript.V8.V8ContextProxyImpl..ctor(V8IsolateProxy gcIsolateProxy, String gcName, Boolean enableDebugging, Boolean disableGlobalMembers, Int32 debugPort) ```

Viewing all articles
Browse latest Browse all 2297