HI we have the exact same error, but unfortunaly at a much higer rate.
We've been in touch wiwth EPiServer support regaring the issue and we were pointed in this direction:
http://blogs.msdn.com/toddca/archive/2007/01/26/hashtable-insert-failed-load-factor-too-high.aspx
Our hosting company has not implemented the fix yet so I don't know if it resolves the issue.
I'll post an update when the fix is implemented.
//Morten
I experience this error on a listingpage, where the datasource was built up based on FindPagesByCriteria, search through more then 400 pages. I changed this to use GetChildren() with a post filter instead. We have not experience this error after this, but then again we only got this error once. I think it only happens when the site is under heavy pressure. It occured on a time where our site has a peek in number of visitors. A strange thing is that this error can propagate to other pages, pages that isn't realy the source of error.
EPiServer Support suggested that I should decrease my number of dynamic properites. But I only have 15....
Advantages using GetChildren vs FindPages is Page Chache vs No Cache!
For more info on the problem see http://www.mourfield.com/2010/01/whats-causing-this-hashtable-insert.html.
A possible fix exists at http://support.microsoft.com/kb/968432.
I had the same problem. 2 web servers in load-balancing. From time to time one of the servers starts throwing the error without affecting the second one. App pool restart helps, but the error returns after some time. It may take up to 1,2,3 or even 4 months to appear again.
Exception Details: System.InvalidOperationException: Hashtable insert failed. Load factor too high.
Stack Trace:
[InvalidOperationException: Hashtable insert failed. Load factor too high.]
System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add) +10066501
EPiServer.Core.PageLanguageSettingsTree.GetClosestSetting(PageReference pageLink) +399
EPiServer.Core.PageLanguageSettingsTree.Get(PageReference pageLink) +105
EPiServer.Core.LanguageSelector.SelectPageLanguage(LanguageSelectorContext context) +166
EPiServer.Core.PageProviderBase.SelectLanguageBranch(PageData page, ILanguageSelector selector) +103
EPiServer.Core.PageProviderBase.GetPage(PageReference pageLink, ILanguageSelector selector) +76
EPiServer.DataFactory.GetPage(PageReference pageLink, ILanguageSelector selector) +341
Does anybody manage to fix this problem with http://support.microsoft.com/kb/968432 ?
I've had the same problem in an Episerver cms R2 solution lately.
I think the code that are the source of this error is this:
while (!PageReference.IsNullOrEmpty(parentLink));
hashtable[pageLink] = parentLink;
(I cant remember which dll I found that in).
The error seems to appear when it's high traffic on the servers and several threads are running the same code at once. Since this error exists in the episerver framework its not to easy to solve.
If you can locate the GetPage you are doing that "cause" the error, your best shot is to use a try catch around that one so the site does not crash.
We have this issue as well. At the moment it seems to popup daily. The problem still remains after we have upgraded to .NET 4.5.1.
The problematic site is running CMS 6 R2.
Hi Robert,
It's a known issue in CMS 6R2 i.e. 60265: "Hashtable insert failed" when calling PageLanguageSettingsTree.GetClosestSetting().
It has been fixed and released in latest version of CMS-6R2.
.Net 4.5.1 is officially NOT supported with CMS-6R2. Have a look at system requirements as well.
Hi Shahid,
Thanks for your reply.
We've made the switch to .NET 4.5.1 in a desperate attempt to resolve the issue. In the meantime we've switched back to .NET 4 and upgraded the CMS to the latest assembly file versions. So far the issue hasn't returned yet.
Every couple of months our CMS (v4.62) keels over with the below error message.
Recycling the application pool via IIS appears to temporarily fix the problem.
Does anyone know the cause of this, so we may develop a long term fix?
Hashtable insert failed. Load factor too high.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: Hashtable insert failed. Load factor too high.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[InvalidOperationException: Hashtable insert failed. Load factor too high.]
System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add) +2903977
System.Collections.Hashtable.set_Item(Object key, Object value) +11
EPiServer.Core.DynamicPropertyTree.SetDynamicProperties(PageData page, Boolean ignoreExisting) +171
EPiServer.DataFactory.GetChildren(PageReference pageLink, ILanguageSelector selector, AccessLevel access) +776
EPiServer.DataFactory.GetChildren(PageReference pageLink, AccessLevel access) +89
EPiServer.DataFactory.GetChildren(PageReference pageLink) +25
EPiServer.PageBase.GetChildren(PageReference pageLink) +85
EPiServer.UserControlBase.GetChildren(PageReference pageLink) +29
EuropeanIntranet.Controls.LeftMenuTreeView.constructTree(PageDataCollection pdc, TreeView tvTreeControl, TreeNode tnParentNodeControl) in C:\Workspace\PerForce\Intranet\main-dev\EuropeanIntranet\Controls\LeftMenuTreeView.ascx.cs:257
EuropeanIntranet.Controls.LeftMenuTreeView.GenerateLeftMenuLinks() in C:\Workspace\PerForce\Intranet\main-dev\EuropeanIntranet\Controls\LeftMenuTreeView.ascx.cs:143
EuropeanIntranet.Controls.LeftMenuTreeView.OnPreRender(EventArgs e) in C:\Workspace\PerForce\Intranet\main-dev\EuropeanIntranet\Controls\LeftMenuTreeView.ascx.cs:59
System.Web.UI.Control.PreRenderRecursiveInternal() +86
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Control.PreRenderRecursiveInternal() +170
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2041