Copied to clipboard

Flag this post as spam?

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

  • Chris Mahoney 219 posts 428 karma points
    Jul 04, 2022 @ 23:36
    Chris Mahoney

    ArgumentOutOfRangeException when site starts up


    We're getting an error out of the blue with our production 8.17.1 site. It gives a yellow screen of death with the following when trying to access any page or the backend:

    Exception information: 
        Exception type: ArgumentOutOfRangeException 
        Exception message: Specified argument was out of the range of valid values.
    Parameter name: handle
       at CSharpTest.Net.IO.TransactedCompoundFile.Read(UInt32 handle)
       at CSharpTest.Net.Storage.BTreeFileStoreV2.TryGetNode[TNode](IStorageHandle handleIn, TNode& node, ISerializer`1 serializer)
       at CSharpTest.Net.Collections.BPlusTree`2.StorageCache.FetchFromStore`1.CreateValue(IStorageHandle key, Object& value)
       at CSharpTest.Net.Collections.LurchTable`2.InternalInsert[T](Int32 hash, TKey key, Int32& added, T& value)
       at CSharpTest.Net.Collections.LurchTable`2.Insert[T](TKey key, T& value)
       at CSharpTest.Net.Collections.LurchTable`2.AddOrUpdate[T](TKey key, T& createOrUpdateValue)
       at CSharpTest.Net.Collections.BPlusTree`2.StorageCache.TryGetNode[TNode](IStorageHandle handle, TNode& tnode, ISerializer`1 serializer)
       at CSharpTest.Net.Collections.BPlusTree`2.NodeCacheNone.Lock(NodePin parent, LockType ltype, NodeHandle child)
       at CSharpTest.Net.Collections.BPlusTree`2.Enumerator.SeekNext(NodePin thisLock, TKey key, NodePin& pin, Int32& offset, TKey& nextKey, Boolean& hasMore)
       at CSharpTest.Net.Collections.BPlusTree`2.Enumerator.MoveNext()
       at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
       at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
       at System.Linq.OrderedEnumerable`1.<GetEnumerator>d__1.MoveNext()
       at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
       at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
       at Umbraco.Web.PublishedCache.NuCache.PublishedSnapshotService.LoadEntitiesFromLocalDbLocked(Boolean onStartup, BPlusTree`2 localDb, ContentStore store, String entityType)
       at Umbraco.Web.PublishedCache.NuCache.PublishedSnapshotService.LoadContentFromLocalDbLocked(Boolean onStartup)
       at Umbraco.Web.PublishedCache.NuCache.PublishedSnapshotService.LockAndLoadContent(Func`2 action)
       at Umbraco.Web.PublishedCache.NuCache.PublishedSnapshotService.<EnsureCaches>b__36_0()
       at System.Threading.LazyInitializer.EnsureInitializedCore[T](T& target, Boolean& initialized, Object& syncLock, Func`1 valueFactory)
       at Umbraco.Web.PublishedCache.NuCache.PublishedSnapshotService.EnsureCaches()
       at Umbraco.Web.PublishedCache.NuCache.PublishedSnapshotService.CreatePublishedSnapshot(String previewToken)
       at System.Lazy`1.CreateValue()
       at System.Lazy`1.LazyInitValue()
       at Umbraco.Web.UmbracoInjectedModule.EnsureHasContent(UmbracoContext context, HttpContextBase httpContext)
       at Umbraco.Web.UmbracoInjectedModule.EnsureUmbracoRoutablePage(UmbracoContext context, HttpContextBase httpContext)
       at Umbraco.Web.UmbracoInjectedModule.ProcessRequest(HttpContextBase httpContext)
       at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
       at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

    It seems to be difficult to find information about what causes this error and how to fix it. I've tried clearing the cache and TEMP directories, restarting the IIS site, and restarting the IIS server, ensuring that w3wp.exe isn't running, and various combinations thereof. I've confirmed from modification dates that nobody's messed around with bin or Web.config. I've checked the file permissions. The drives are nowhere near full.

    Any ideas?

  • Chris Mahoney 219 posts 428 karma points
    Jul 05, 2022 @ 01:11
    Chris Mahoney

    Fixed. For reasons unknown, last night's SQL database backup is around 2.3x as big as normal. Restoring the previous night's backup has fixed the issue.

    No idea what's wrong with DB at this stage or what caused the issue in the first place...

  • Dan Diplo 1554 posts 6203 karma points MVP 4x c-trib
    Jul 05, 2022 @ 17:56
    Dan Diplo

    I wonder if it was to do with the maximum size of the nuCache file, as related to this issue? Could explain why it happened when your DB got "bloated"?

  • Chris Mahoney 219 posts 428 karma points
    Jul 05, 2022 @ 20:15
    Chris Mahoney

    Thanks. There seem to be a few reports of this issue floating around on GitHub and I'm not sure why I didn't see them when searching yesterday! I'll do some reading :)

  • Chris Mahoney 219 posts 428 karma points
    Jul 19, 2022 @ 23:47
    Chris Mahoney

    Well, this hasn't happened again so far, and hopefully it'll stay that way. It seems that the bloated DB was the cause of the issue rather than a symptom, but I still have no idea what caused the bloat in the first place.

    Fingers crossed that it never happens again!

  • Chris Mahoney 219 posts 428 karma points
    Aug 25, 2022 @ 20:12
    Chris Mahoney

    Fingers crossed that it never happens again!

    Guess what happened again. This site has been happily running without issue for literally years, and now it's failed twice in two months.

    I noticed that NuCache.Content.db and NuCache.Media.db are both 256 MB, which I'm guessing isn't right!

    Edit: It probably doesn't help that somebody's created a page with ~26 printed pages of text and images, with each image saved into the HTML in Base64. Sigh.

Please Sign in or register to post replies

Write your reply to: