Copied to clipboard

Flag this post as spam?

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


  • trfletch 598 posts 604 karma points
    Mar 21, 2019 @ 14:18
    trfletch
    0

    Umbraco 7.5.4 large site intermittently hangs, app pool using high CPU, app pool task need to be killed to recover

    We have a large Umbraco 7.5.4 website that has well over a hundred thousand nodes.

    Every now and then, maybe once or twice a week the site hangs and is unresponsive, this can be recovered by killing the app pool process in task manager.

    We have spent hours looking into this and have even raised a support request with Microsoft who asked us to run "Perfview" and "Debug diag" whilst the issue was happening and send them the dump files.

    They came back saying that the problem was due to Umbraco causing a lock making everything else wait. Their suggestion was to disable Umbraco which is of course completely unfeasible because the whole site is built on it.

    Currently the only solution that we have left to try is upgrading to a later version of Umbraco but this is not going to be an easy task as it is a very large and complex website.

    Does anyone know if there were any known issues with this version of Umbraco that an update might resolve, or are there any other suggestions as to what the problem could be?

    We have lots of other Umbraco sites running on various versions and other Umbraco sites running on the same server without any problems (none of them are quite as big as this site).

    Any help will be appreciated, below are a couple of snippets that Microsoft highlighted in the dump files which suggest to them that this is an Umbraco problem:

    0000006a51bfccf0 00007ffc2849f46d System.Threading.ReaderWriterLockSlim.TryEnterReadLockCore(TimeoutTracker) f:\dd\ndp\fx\src\Core\system\threading\ReaderWriterLockSlim\ReaderWriterLockSlim.cs @ 436 0000006a51bfcd60 00007ffc2849f29c System.Threading.ReaderWriterLockSlim.TryEnterReadLock(TimeoutTracker) f:\dd\ndp\fx\src\Core\system\threading\ReaderWriterLockSlim\ReaderWriterLockSlim.cs @ 310 0000006a51bfcdb0 00007ffbdcb4743a Umbraco.ModelsBuilder.Umbraco.PureLiveModelFactory.EnsureModels()
    0000006a51bfce30 00007ffbdcb47315 Umbraco.ModelsBuilder.Umbraco.PureLiveModelFactory.CreateModel(Umbraco.Core.Models.IPublishedContent) 0000006a51bfce70 00007ffbdcb4723c Umbraco.Core.Models.PublishedContent.PublishedContentExtensionsForModels.CreateModel(Umbraco.Core.Models.IPublishedContent)

    And some more here:

    System.Threading.ReaderWriterLockSlim.TryEnterReadLockCore(TimeoutTracker) f:\dd\ndp\fx\src\Core\system\threading\ReaderWriterLockSlim\ReaderWriterLockSlim.cs @ 436 0000006a548fd840 00007ffc2849f29c System.Threading.ReaderWriterLockSlim.TryEnterReadLock(TimeoutTracker) f:\dd\ndp\fx\src\Core\system\threading\ReaderWriterLockSlim\ReaderWriterLockSlim.cs @ 310 0000006a548fd890 00007ffbd7fd40af Umbraco.ModelsBuilder.Umbraco.PureLiveModelFactory.RazorBuildProvider_CodeGenerationStarted(System.Object, System.EventArgs)
    0000006a548fd8f0 00007ffbd7fd3e26 System.Web.WebPages.Razor.RazorBuildProvider.OnCodeGenerationStarted(System.Web.WebPages.Razor.IAssemblyBuilder) 0000006a548fd930 00007ffbd7fd3cc9 System.Web.WebPages.Razor.RazorBuildProvider.GenerateCodeCore(System.Web.WebPages.Razor.IAssemblyBuilder) 0000006a548fd980 00007ffc26aa2f61 System.Web.Compilation.AssemblyBuilder.AddBuildProvider(System.Web.Compilation.BuildProvider) f:\dd\ndp\fx\src\xsp\system\Web\Compilation\AssemblyBuilder.cs @ 481 0000006a548fd9f0 00007ffc2625cf0a System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders() f:\dd\ndp\fx\src\xsp\system\Web\Compilation\BuildProvidersCompiler.cs @ 102 0000006a548fdaa0 00007ffc2625cc12 System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
    f:\dd\ndp\fx\src\xsp\system\Web\Compilation\BuildProvidersCompiler.cs @ 211 0000006a548fdb20 00007ffc269c230b

    And this is what they flagged up from looking at the source code of Umbraco.ModelsBuilder.Umbraco.PureLiveModelFactory.RazorBuildProvider_CodeGenerationStarted

    // Umbraco.ModelsBuilder.Umbraco.PureLiveModelFactory
    // Flags = reuse slot, hide by signature
    private void RazorBuildProvider_CodeGenerationStarted(object sender, System.EventArgs e)
    {
      if (this._modelsAssembly == null)
      {
        return;
      }
      this._locker.EnterReadLock();
    
  • Jan Skovgaard 11280 posts 23678 karma points MVP 11x admin c-trib
    Mar 21, 2019 @ 16:54
    Jan Skovgaard
    0

    Hi

    This might be a long shot and I might not have understood your initial issue well enough but I can't help wondering if it could be caused by this old bug maybe? https://issues.umbraco.org/issue/U4-6338 - If so then it's a hotfix for the server software that is needed.

    Sorry in advance if I got it all wrong :-)

    /Jan

  • trfletch 598 posts 604 karma points
    Mar 21, 2019 @ 17:06
    trfletch
    0

    Hi Jan,

    Thanks for the response, I had actually come across that article before as part of my research into this issue, however I am pretty sure it would not help as we are running the website on Windows Server 2016 Datacenter and that hotfix is for Windows Server 2012. Thanks anyway.

  • Rhys Hamilton 140 posts 942 karma points
    Mar 22, 2019 @ 10:00
    Rhys Hamilton
    0

    I think the issue here is to do with the BuildManager getting locked when the PureLiveModelFactory tries to generate its models.

    There's probably a few other solutions out there for this, but if this is what's happening, then this post should help.

    This issue was resolved with the fix above in 7.5.13 (I believe), so you could always upgrade as well - but I know that's not always practical, especially for larger sites.

  • trfletch 598 posts 604 karma points
    Mar 22, 2019 @ 15:14
    trfletch
    1

    Hi Rhys,

    Thanks for the reply, I did come across the following post shortly after posting this thread which also links to the article you have suggested: https://our.umbraco.com/forum/using-umbraco-and-getting-started/85491-models-builder-error-is-causing-app-pool-refresh-to-fail

    I have posted on the other thread to see if I can get confirmation that the issue is fixed in the latest version of Umbraco as there was one user on the other thread that said they still have the issue while running a new version of Umbraco.

    I am now looking into upgrading to Umbraco 7.14.0 which will hopefully resolve the problem.

Please Sign in or register to post replies

Write your reply to:

Draft