Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(Possible) NuCache Error after uSync Import #40

Closed
KevinJump opened this issue Sep 18, 2019 · 17 comments
Closed

(Possible) NuCache Error after uSync Import #40

KevinJump opened this issue Sep 18, 2019 · 17 comments
Assignees
Labels
help wanted Extra attention is needed Investigating Looking at this issue to see if we can identify a root cause question Further information is requested

Comments

@KevinJump
Copy link
Owner

KevinJump commented Sep 18, 2019

As described here :
https://our.umbraco.com/forum/umbraco-8/99105-nucache-500-error-after-deploy

after a uSync import/deploy you might see:

System.IndexOutOfRangeException: Index points outside the properties array, which means the properties array is corrupt.

At this time, we are not sure if this is a uSync or Umbraco issue, this is a placeholder for our investigations.

Note: the post says 8.1.1 but it might be a pre 8.1.x release issue
we are unsure if this is related to issue #18

  • This occurs with only settings (no content/media) imports
@KevinJump KevinJump self-assigned this Sep 18, 2019
@KevinJump KevinJump added the question Further information is requested label Sep 18, 2019
@KevinJump KevinJump added this to the 8.2.1 - Patche Release milestone Sep 18, 2019
@KevinJump KevinJump added the help wanted Extra attention is needed label Sep 18, 2019
@KevinJump
Copy link
Owner Author

Looking at eliminating the ModelsBuilder issues #18 with a recent update to batch mode, but i think this is still something unresolved.

@Box-Of-Hats
Copy link

I've just had this exact issue after doing a uSync (+content) import.

Umbraco: 8.1.3
uSync: 8.2.1

@KevinJump
Copy link
Owner Author

Hi any information you have (stack traces, etc, would be gladly accepted!) we are deep into Umbraco Core debugging with this, at the moment, we have an experimental bit of code that rebuilds the nucache when the import is complete

https://gist.github.com/KevinJump/6721e7964516e439dc798cc01bd78815

this might be a remedy, and might be something we put into the core , but if you want to try it and see if it helps please do.

@KevinJump
Copy link
Owner Author

For our next release we will also have #49 (make handlers less chatty) is something that might help, but only in the sense that it will reduce the number of saves that reduces the number of cache rebuilds, which is where we think the issue lies.

@Box-Of-Hats
Copy link

I ended up deleting a large amount of the imported content and that solved it for me.
I've gone into the Umbraco Logs trying to find a stack trace but it seems that it was never logged

@vaags
Copy link

vaags commented Sep 27, 2019

I get this error pretty often. I can remedy it by republishing the failing page. I'm not importing the actual content, just the ContentTypes ++

Umbraco 8.1.4
Usync 8.2.1

@KevinJump
Copy link
Owner Author

We are heavily testing cache rebuilding (#51) to see if it remedies this, but equally, I am really struggling to replicate, so any info, etc...

@KevinJump
Copy link
Owner Author

Hi,

We have just released version 8.2.2 of uSync which has a couple of things that might help mitigate this https://github.com/KevinJump/uSync8/releases/tag/8.2.2

The main one is the Cache rebuilding (which can be turned on or off in the config) - hopefully this will mitigate any corruptions,

While the other updates hopefully reduce the chatter on updates to reduce the actual risk of it happening in the first place.

@KevinJump
Copy link
Owner Author

uSync releases are like buses at the moment (usb ports and free wifi!)

but we have made some extra changes in uSync 8.2.3 around how content is imported during a startup import, it might be worth seeing if this resolves the issues you have been having with this error.

@Box-Of-Hats
Copy link

Cheers Kevin, I'll update our version of uSync before we do our next migration and let you know if there's any issues

@vaags
Copy link

vaags commented Oct 14, 2019

I'm starting to think this is a bug inside Umbraco Core. I got the error several times in development just now. I've turned off usync import in development, so the error is presumably not caused by usync.

I'm not sure how to reproduce unfortunately, but it seemingly happened after moving content from one tree to another. The moved content triggered the error upon view.

As before, the error is fixed by re-publishing the failing pages.

Umbraco 8.1.5
Usync 8.2.3

Excerpt from log:

{"@t":"2019-10-14T13:15:08.5651164Z","@mt":"An unhandled exception occurred","@l":"Error","@x":"System.IndexOutOfRangeException: Index points outside the properties array, which means the properties array is corrupt.\r\n at Umbraco.Web.PublishedCache.NuCache.PublishedContent.GetProperty(String alias) in d:\a\1\s\src\Umbraco.Web\PublishedCache\NuCache\PublishedContent.cs:line 317\r\n at Umbraco.Core.Models.PublishedContent.PublishedContentWrapped.GetProperty(String alias) in d:\a\1\s\src\Umbraco.Core\Models\PublishedContent\PublishedContentWrapped.cs:line 134\r\n at Umbraco.Web.PublishedContentExtensions.Value[T](IPublishedContent content, String alias, String culture, String segment, Fallback fallback, T defaultValue) in d:\a\1\s\src\Umbraco.Web\PublishedContentExtensions.cs:line 151\r\n at Umbraco.Web.PublishedModels.HaveSubPageSortSettings.GetSubpageSortOrder(IHaveSubPageSortSettings that) in C:\Users\Thomas\Documents\Dev\Web\App_Data\Models\HaveSubPageSortSettings.generated.cs:line 66\r\n at Umbraco.Web.PublishedModels.ListPage.get_SubpageSortOrder() in C:\Users\Thomas\Documents\Dev\Web\App_Data\Models\ListPage.generated.cs:line 165\r\n at ASP._Page_Views_ListPage_cshtml.Execute() in C:\Users\Thomas\Documents\Dev\Web\Views\ListPage.cshtml:line 18\r\n at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()\r\n at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()\r\n at System.Web.WebPages.StartPage.RunPage()\r\n at System.Web.WebPages.StartPage.ExecutePageHierarchy()\r\n at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)\r\n at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)\r\n at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)\r\n at Umbraco.Web.Mvc.ProfilingView.Render(ViewContext viewContext, TextWriter writer) in d:\a\1\s\src\Umbraco.Web\Mvc\ProfilingView.cs:line 25\r\n at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)\r\n at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)\r\n at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)\r\n at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)\r\n at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)\r\n at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilterRecursive(IList1 filters, Int32 filterIndex, ResultExecutingContext preContext, ControllerContext controllerContext, ActionResult actionResult)\r\n at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList1 filters, ActionResult actionResult)\r\n at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.<BeginInvokeAction>b__4()\r\n at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_1.<BeginInvokeAction>b__1(IAsyncResult asyncResult)\r\n at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult1.CallEndDelegate(IAsyncResult asyncResult)\r\n at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase1.End()\r\n at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult)\r\n at System.Web.Mvc.Controller.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState)\r\n at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult)\r\n at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase1.End()\r\n at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)\r\n at System.Web.Mvc.Controller.<>c.<BeginExecute>b__151_2(IAsyncResult asyncResult, Controller controller)\r\n at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult)\r\n at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase1.End()\r\n at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)\r\n at System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult)\r\n at System.Web.Mvc.MvcHandler.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState)\r\n at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncVoid1.CallEndDelegate(IAsyncResult asyncResult)\r\n at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResultBase`1.End()\r\n at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)\r\n at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result)\r\n at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()\r\n at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)\r\n at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)","SourceContext":"Umbraco.Web.UmbracoApplicationBase","ProcessId":20036,"ProcessName":"iisexpress","ThreadId":48,"AppDomainId":6,"AppDomainAppId":"LMW3SVC2ROOT","MachineName":"LAPTOP-BXNXHXLU","Log4NetLevel":"ERROR","HttpSessionId":"aisoodyy5ymrvygyhmalrwg0","HttpRequestNumber":3,"HttpRequestId":"83bc28c9-4f39-4897-bb98-b495033c6f2e"}

@KevinJump
Copy link
Owner Author

yeah, I think there is an issue with internal cache rebuilds either tripping over themselves or getting corrupt based on event updates.

uSync now has a 'rebuild the cache' event at the end of an import to see if this does something, but it's hard to tell.

there are a couple of fixes in Umbraco 8.2.0 around nucache so fingers crossed

umbraco/Umbraco-CMS#5362
& umbraco/Umbraco-CMS#6347

@vaags
Copy link

vaags commented Oct 17, 2019

I haven't updated to v8.2 yet, but those fixes seem to be about performance and PureLive-mode? I use AppData-mode, not PureLive, so not sure if it will fix anything for me.

Anyways, this issue should probably be added to the umbraco repo, and not here?

@KevinJump
Copy link
Owner Author

Some of the work on the nucache has been around how the tree is republished after a node has been updated. (which has some regression in 8.2) e.g umbraco/Umbraco-CMS#6734 - I think this might have an impact (although the issue in 8.2 might cause you other problems :( )

@gosudev
Copy link

gosudev commented Oct 28, 2019

Hi, I had this error after usync import - I started by re-publishing all the nodes affected by recent changes and it helped.
Fortunately, there were few content nodes and this temporary workaround worked.

Umbraco 8.1.5
uSync8.Core 8.0.0

Best regards

"Message": "An error has occurred.",
"ExceptionMessage": "Index points outside the properties array, which means the properties array is corrupt.",
"ExceptionType": "System.IndexOutOfRangeException",
"StackTrace": " at Umbraco.Web.PublishedCache.NuCache.PublishedContent.GetProperty(String alias) in d:\a\1\s\src\Umbraco.Web\PublishedCache\NuCache
PublishedContent.cs:line 317\r\n at Umbraco.Core.Models.PublishedContent.PublishedContentWrapped.GetProperty(String alias) in d:\a\1\s\src\Umbraco.Core\Models\PublishedContent
PublishedContentWrapped.cs:line 134\r\n at Umbraco.Core.Models.PublishedContent.PublishedContentWrapped.GetProperty(String alias) in d:\a\1\s\src\Umbraco.Core\Models\PublishedContent
PublishedContentWrapped.cs:line 134\r\n at Umbraco.Web.PublishedContentExtensions.Value[T](IPublishedContent content, String alias, String culture, String segment, Fallback fallback, T defaultValue) in d:\a\1\s\src\Umbraco.Web
PublishedContentExtensions.cs:line 151\r\n at Umbraco.Web.PublishedModels.ReleaseNote.get_FeaturedImage() in D:\a\1\s\WebsiteApi.Umbraco.Core\ContentModels

@KevinJump
Copy link
Owner Author

really intrested to see if anyone gets these issues on Umbraco 8.2+

@KevinJump KevinJump added the Investigating Looking at this issue to see if we can identify a root cause label Nov 13, 2019
@KevinJump
Copy link
Owner Author

Closing as we haven't seen any issues with since Umbraco 8.3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed Investigating Looking at this issue to see if we can identify a root cause question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants