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?

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" button below.

    Continue discussion

Please Sign in or register to post replies