Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Christian Haase 6 posts 99 karma points
    Jan 31, 2020 @ 10:09
    Christian Haase
    0

    Investigation of blocked thread

    I'm investigating and issue with our site's CPU usage. We experience that the CPU reaches 100% with approximately ~200 users. Our only solution is to trigger an iisreset.

    I've investigated a dump using Debug Diagnostics Tool and WinDbg. Multiple threads are giving this call stack:

            Child SP               IP Call Site
    0000008884b1d308 00007ffc28b4079a [HelperMethodFrame: 0000008884b1d308] 
    0000008884b1d430 00007ffc13ede0bf System.MulticastDelegate.CombineImpl(System.Delegate)
    0000008884b1d4b0 00007ffbb764bc56 System.Collections.ObjectModel.ObservableCollection`1[[System.__Canon, mscorlib]].add_CollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventHandler)
    0000008884b1d4f0 00007ffbba2172cb Umbraco.Core.Models.PublicAccessEntry.PerformDeepClone(System.Object)
    0000008884b1d540 00007ffbb728091f Umbraco.Core.Models.Entities.EntityBase.DeepClone()
    0000008884b1d590 00007ffbba2177a2 Umbraco.Core.Cache.FullDataSetRepositoryCachePolicy`2+c[[System.__Canon, mscorlib],[System.Guid, mscorlib]].b__12_1(System.__Canon)
    0000008884b1d5d0 00007ffbb5ebdc91 System.Linq.Enumerable+WhereSelectArrayIterator`2[[System.__Canon, mscorlib],[System.__Canon, mscorlib]].MoveNext()
    0000008884b1d610 00007ffbb5ebaf2c System.Linq.Buffer`1[[System.__Canon, mscorlib]]..ctor(System.Collections.Generic.IEnumerable`1)
    0000008884b1d6a0 00007ffbb5ee7b8a System.Linq.Enumerable.ToArray[[System.__Canon, mscorlib]](System.Collections.Generic.IEnumerable`1)
    0000008884b1d710 00007ffbba20df76 Umbraco.Core.Services.Implement.PublicAccessService.GetEntryForContent(System.String)
    0000008884b1d7b0 00007ffbba20d811 Umbraco.Core.Services.Implement.PublicAccessService.IsProtected(System.String)
    0000008884b1d7f0 00007ffbba20d298 Umbraco.Web.Routing.PublishedRouter.EnsurePublishedContentAccess(Umbraco.Web.Routing.PublishedRequest)
    0000008884b1d890 00007ffbba20c331 Umbraco.Web.Routing.PublishedRouter.HandlePublishedContent(Umbraco.Web.Routing.PublishedRequest)
    0000008884b1d8f0 00007ffbba2093b4 Umbraco.Web.Routing.PublishedRouter.FindPublishedContentAndTemplate(Umbraco.Web.Routing.PublishedRequest)
    0000008884b1d940 00007ffbba206fb6 Umbraco.Web.Routing.PublishedRouter.PrepareRequest(Umbraco.Web.Routing.PublishedRequest)
    0000008884b1d990 00007ffbba2023dc Umbraco.Web.UmbracoInjectedModule.ProcessRequest(System.Web.HttpContextBase)
    0000008884b1da00 00007ffbb8d328df System.Web.HttpApplication+SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
    0000008884b1da70 00007ffbb8d32abc System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep)
    0000008884b1dab0 00007ffbb8d32d8e System.Web.HttpApplication.ExecuteStep(IExecutionStep, Boolean ByRef)
    0000008884b1db00 00007ffbb8d38bba System.Web.HttpApplication+PipelineStepManager.ResumeSteps(System.Exception)
    0000008884b1dc40 00007ffbb8d38233 System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext, System.AsyncCallback)
    0000008884b1dc90 00007ffbb8d2d5b2 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest, System.Web.HttpContext)
    0000008884b1dd10 00007ffbb8d2f016 System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
    0000008884b1deb0 00007ffbb8d2f543 System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)
    0000008884b1def0 00007ffbb8d30e62 DomainNeutralILStubClass.IL_STUB_ReversePInvoke(Int64, Int64, Int64, Int32)
    0000008884b1e760 00007ffc1510224e [InlinedCallFrame: 0000008884b1e760] System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus ByRef)
    0000008884b1e760 00007ffbb8d421ce [InlinedCallFrame: 0000008884b1e760] System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus ByRef)
    0000008884b1e730 00007ffbb8d421ce DomainNeutralILStubClass.IL_STUB_PInvoke(IntPtr, System.Web.RequestNotificationStatus ByRef)
    0000008884b1e7f0 00007ffbb8d2f0d9 System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
    0000008884b1e990 00007ffbb8d2f543 System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)
    0000008884b1e9d0 00007ffbb8d30e62 DomainNeutralILStubClass.IL_STUB_ReversePInvoke(Int64, Int64, Int64, Int32)
    0000008884b1eba8 00007ffc151024a3 [ContextTransitionFrame: 0000008884b1eba8]
    

    DebugDiag is telling me that thread 98 is blocked, and are blocking other threads too. This is the call stack for thread 98:

                Child SP               IP Call Site
    0000008882f0e138 00007ffc28b4079a [GCFrame: 0000008882f0e138] 
    0000008882f0e200 00007ffc28b4079a [GCFrame: 0000008882f0e200] 
    0000008882f0e258 00007ffc28b4079a [HelperMethodFrame: 0000008882f0e258] System.Threading.Monitor.Enter(System.Object)
    0000008882f0e350 00007ffc13f58230 System.Threading.TimerQueueTimer.Fire()
    0000008882f0e3c0 00007ffc13e99bd1 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
    0000008882f0e400 00007ffc13e98e46 System.Threading.ThreadPoolWorkQueue.Dispatch()
    0000008882f0e8a0 00007ffc15106cb3 [DebuggerU2MCatchHandlerFrame: 0000008882f0e8a0] 
    0000008882f0ea08 00007ffc15106cb3 [ContextTransitionFrame: 0000008882f0ea08] 
    0000008882f0ec40 00007ffc15106cb3 [DebuggerU2MCatchHandlerFrame: 0000008882f0ec40]
    

    I know that I'm somewhat fishing for a potential culprit, but since some of the call stacks include Umbraco specific functionality, I wanted to post a question here to check if you might be able to find something.

    We've had this problem a few times now since we went live with our solution in November, and we've done some investigation ourselves, but can't seem to find any solution.

    Could this be a potential issue with Umbraco?

Please Sign in or register to post replies

Write your reply to:

Draft