Hi Jason,
Have you been able to fix this problem yet? We've currently in the same situation ourselves. Please assist if possible.
Sincerely,
Ronny Dahl (mail@ronnydahl.com)
Hi Ronny,
I work with Jason and, I'm afraid, I may have bad news for you.
We were NOT able to fix this issue. We bsaically worked around it.
We discovered we had some code in a library that was doing a LARGE number of page reads to help produce some dynamic data. In order to fix this problem we ended up caching some of the search results that were being executed by the library that were being frequently called.
This solved all of our problems we were experiencing and also increased the performance of the system.
I recommend you seriously consider the design of your site and perhaps rethink any parts of it that may be pulling dynamic content in.
Cheers,
Cameron
We have an installation where the same problem occurs now and then. This is very strange, because:
* The error (timeout reading page list) is thrown quickly. Within half a second or so.
* There is hardly any load on the site. Very few visitors.
* The error sometimes occur on page lists containing only a handful of pages.
I would be very grateful for tips regarding how to solve this issue!
Hmm... Sounds a bit like re-inventing the wheel when you have to create a custom caching solution to cache pages already cached by EPiServer...
Has anyone at EPiServer looked into this, and tried to reproduce the errors? Are there any load test reports available where you can see how many simultaneous users EPiServer can handle before it starts dumping error messages everywhere?
Regards,
/Patrik
Hi all.
This issue has now been fixed in Hotfix 5 for 4.61.
Issue #45340 The Datafactory Cache logic may cause several database request for the same page/page list
http://www.episerver.com/en/EPiServer_Knowledge_Center/Download2/Hotfixes/EPiServer-461---Hotfix-5/
Note: Before installing any hotfix, please remember that these packages are not subject to testing in the same extent as publicly released code.
Make sure to backup old files and database before applying any hotfix.
In some special cases this has not been resolved in hotfix 5. We have made a inofficial hofix 6 that will be included in version 4.62 that will be released soon. If this is a critical problem for anyone, please contact Episerver support (http://www.episerver.com/en/EPiServer_Knowledge_Center/Support/)and we will send this hofix to you.
[EPiServerException: Timeout reading page list] EPiServer.DataFactoryCache.ᐁ(PageReference ) +759 EPiServer.DataFactory.ᐁ(PageReference ) +165 EPiServer.DataFactory.GetChildren(PageReference pageLink, ILanguageSelector selector, AccessLevel access) +532 EPiServer.WebControls.ExplorerTree.GetChildren(PageReference pageLink) +108 EPiServer.PageTreeLoader.ᐁ(TreeState , PageReference , Boolean , Int32 ) +64 EPiServer.PageTreeLoader.ᐁ(TreeState , PageReference , Boolean , Int32 ) +261 EPiServer.PageTreeLoader.GetPageTree(PageReference parent, PageReference[] openPages, IPageSource pageSource, Int32 nrOfLevels) +177 EPiServer.WebControls.PageTreeData.PopulatePages(PageDataCollection pages) +332 EPiServer.WebControls.PageControlBase.ᐁ() +44 EPiServer.WebControls.ExplorerTree.Render(HtmlTextWriter output) +45 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130 System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24 System.Web.UI.WebControls.Label.RenderContents(HtmlTextWriter writer) +1796043 System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +29 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130 System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24 System.Web.UI.WebControls.Label.RenderContents(HtmlTextWriter writer) +1796043 System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +29 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +130 System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24 System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +59 System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +68 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121 System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +37 ASP.edit_edittree_aspx.__Render__control1(HtmlTextWriter __w, Control parameterContainer) in d:\WebSpace\Staffing2\edit\EditTree.aspx:146 SEOViewState.code.EventHandler.FilterHtml(HtmlTextWriter writer, Control container) +100 System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +2065835 System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +24 System.Web.UI.Page.Render(HtmlTextWriter writer) +26 System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +25 System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +121 System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +22 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1896
Another trace:[EPiServerException: Timeout reading page data] EPiServer.DataFactoryCache.ᐁ(PageReference ) +775 EPiServer.DataFactory.ᐁ(PageReference , ILanguageSelector ) +169 EPiServer.DataFactory.GetPage(PageReference pageLink, ILanguageSelector selector, AccessLevel access) +910 EPiServer.DataFactory.GetPage(PageReference pageLink, AccessLevel access) +88 EPiServer.DataFactory.GetPage(PageReference pageLink) +24 EPiStaffingWeb.libraries.MagicPageFetcher.Level(Int32 PageRef) +163 EPiStaffingWeb.libraries.MagicPageFetcher.Level(PageData aPage, String aProperty) +138 EPiStaffingWeb.libraries.MagicPageFetcher.CalcMagic(PageData aPageToCalc, PageData aRelativePage) +137 EPiStaffingWeb.libraries.MagicPageFetcher.MagicCalc(Object anObject) +51 EPiStaffingWeb.libraries.MagicPageFetcher.Compare(Object x, Object y) +18 System.SorterObjectArray.QuickSort(Int32 left, Int32 right) +103 [InvalidOperationException: Failed to compare two elements in the array.] System.SorterObjectArray.QuickSort(Int32 left, Int32 right) +301 System.Array.Sort(Array keys, Array items, Int32 index, Int32 length, IComparer comparer) +366 System.Collections.ArrayList.Sort(Int32 index, Int32 count, IComparer comparer) +56 System.Collections.ArrayList.Sort(IComparer comparer) +26 EPiServer.Core.PageDataCollection.Sort(IComparer comparer) +12 EPiStaffingWeb.libraries.MagicPageFetcher.MagicFilter(PageDataCollection allPages) +69 EPiStaffingWeb.libraries.GenericPageFetcher.GetPages(IncludePage anIncludeFunction) +33 EPiStaffingWeb.templates.Units.StaffingScrollamatic.Page_Load(Object sender, EventArgs e) +214 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34 System.Web.UI.Control.OnLoad(EventArgs e) +99 System.Web.UI.Control.LoadRecursive() +47 System.Web.UI.Control.LoadRecursive() +131 System.Web.UI.Control.LoadRecursive() +131 System.Web.UI.Control.LoadRecursive() +131 System.Web.UI.Control.LoadRecursive() +131 System.Web.UI.Control.LoadRecursive() +131 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061