Copied to clipboard

Flag this post as spam?

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


  • Steve Temple 54 posts 288 karma points MVP c-trib
    Nov 07, 2017 @ 13:48
    Steve Temple
    0

    Umbraco.config locked on Azure Web Apps

    On web apps occasionally it ends up in a state where I get lots of these errors in my logs:

    Umbraco.Core.Sync.DatabaseServerMessenger Error - DISTRIBUTED CACHE IS NOT UPDATED. Failed to execute instructions (id: 103959, instruction count: 157). Instruction is being skipped/ignored
    The thread has been aborted, because the request has timed out.
    System.Threading.ThreadAbortException: Thread was being aborted.
    at System.Threading.Monitor.ObjWait(Boolean exitContext, Int32 millisecondsTimeout, Object obj)
    at System.Threading.Monitor.Wait(Object obj, Int32 millisecondsTimeout, Boolean exitContext)
    at System.Threading.SemaphoreSlim.WaitUntilCountOrTimeout(Int32 millisecondsTimeout, UInt32 startTime, CancellationToken cancellationToken)
    at System.Threading.SemaphoreSlim.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
    at Umbraco.Core.AsyncLock.Lock()
    at umbraco.SafeXmlReaderWriter.Get(IScopeProviderInternal scopeProvider, AsyncLock xmlLock, XmlDocument xml, Action`1 refresh, Action`2 apply, Boolean writer)
    at umbraco.content.GetSafeXmlWriter()
    at umbraco.content.UpdateDocumentCache(Document d)
    at umbraco.content.UpdateDocumentCache(Int32 pageId)
    at Umbraco.Web.Cache.PageCacheRefresher.Refresh(Int32 id)
    at Umbraco.Core.Sync.DatabaseServerMessenger.RefreshByIds(Guid uniqueIdentifier, String jsonIds)
    at Umbraco.Core.Sync.DatabaseServerMessenger.NotifyRefreshers(IEnumerable`1 instructions, HashSet`1 processed)
    at Umbraco.Core.Sync.DatabaseServerMessenger.ProcessDatabaseInstructions(IReadOnlyCollection`1 instructionBatch, CacheInstructionDto dto, HashSet`1 processed, Int32& lastId)
    

    This prevents any content from being published and causes lots of problems.

    Once it gets in this state it's pretty much stuck for good. I'm following all of the recommended configuration for Flexible Load Balancing. So the umbraco.config is written to environment temp storage and the Examine indexes are doing the same. The master environment is on a single web app instance while the front end site is on multiple web app instances. The web.config contains this:

    <add key="umbracoContentXMLStorage" value="EnvironmentTemp" />
    

    The only way I can get out of this is do a fresh deployment to an empty staging slot and swap them over once it has spun up.

    Anyone have any ideas how to prevent this?

Please Sign in or register to post replies

Write your reply to:

Draft