"Hashtable insert failed. Load factor too high" in .NET 3.5 sp1



 


Error : Hashtable insert failed. Load factor too high (Type: System.InvalidOperationException)


Symptoms:


1)      You are using .NET 3.5 sp1 for your ASP.net application and getting “Hashtable insert failed. Load factor too high” intermittently.


2)      Only way to recover from the issue to by restarting IIS.


3)      You are seeing following error, warning logged into event viewer.



Event Type:       Error
Event Source:    MyApp.Module
Event Category:              None
Event ID:            0
Date:                  6/4/2009
Time:                 11:30:55 AM
User:                  N/A
Computer:          MYCOMPUTER
Description:
ServerName=MyServer
ApplicationName=MyApp
ApplicationSubSystem=Module
Category=UIException
DateTime=06/04/2009 11:30:55 AM


Ticks=633797081958121399
Message=Type: System.InvalidOperationException
Message: Hashtable insert failed. Load factor too high.
Source: mscorlib
Target Site: Insert
StackTrace:
   at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
   at System.Collections.Hashtable.set_Item(Object key, Object value)
   at System.Runtime.Serialization.SerializationEventsCache.GetSerializationEventsForType(Type t)
   at System.Runtime.Serialization.ObjectManager.RaiseOnDeserializingEvent(Object obj)
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObject(ParseRecord pr)
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Parse(ParseRecord pr)
   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)   at System.Web.Util.AltSerialization.ReadValueFromStream(BinaryReader reader)
   at Boolean check)
   at System.Web.SessionState.SessionStateItemCollection.get_Item(String name)
   at System.Web.SessionState.HttpSessionStateContainer.get_Item(String name)
   at System.Web.SessionState.HttpSessionState.get_Item(String name)
   at MyApp.UI.Common.Managers.SessionManager.get_Item(String key)
   at MyApp.UI.SharedWeb.MyBasePage.GetCurrentAccounts()
   at MyApp.UI.SharedWeb.MyBasePage.GetCurrentAccount()
   at MyApp.UI.SharedWeb.MyBasePage.get_CurrentAccount()
   at Test.PageSelfCheck()
   at MyApp.UI.SharedWeb.MyBasePage.OnLoad(EventArgs e)


Event Type:       Warning


Event Source:    ASP.NET 2.0.50727.0


Event Category:  Web Event


Event ID:            1309


Date:                  6/4/2009


Time:                 11:30:55 AM


User:                  N/A


Computer:          MYCOMPUTER


Description:


Event code: 3005


Event message: An unhandled exception has occurred.


Event time: 6/4/2009 11:30:55 AM


Event ID: c94d90ed325248c880c03c8f3d5d8488


Event sequence: 33496


Event occurrence: 13329


Event detail code: 0


 


 


Exception information:


    Exception type: InvalidOperationException


    Exception message: Hashtable insert failed. Load factor too high.


 


Thread information:


    Thread ID: 13


    Thread account name: NT AUTHORITY\NETWORK SERVICE


    Is impersonating: False


    Stack trace:    at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)


   at System.Collections.Hashtable.set_Item(Object key, Object value)


   at System.Runtime.Serialization.SerializationEventsCache.GetSerializationEventsForType(Type t)


   at System.Runtime.Serialization.ObjectManager.RaiseOnDeserializingEvent(Object obj)


   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObject(ParseRecord pr)


   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Parse(ParseRecord pr)


   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)


   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()


   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)


   at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)


   at System.Web.Util.AltSerialization.ReadValueFromStream(BinaryReader reader)


   at System.Web.SessionState.SessionStateItemCollection.ReadValueFromStreamWithAssert()


   at System.Web.SessionState.SessionStateItemCollection.DeserializeItem(String name, Boolean check)


   at System.Web.SessionState.SessionStateItemCollection.get_Item(String name)


   at System.Web.SessionState.HttpSessionStateContainer.get_Item(String name)


   at System.Web.SessionState.HttpSessionState.get_Item(String name)


   at App.UI.SharedWeb.BasePage.get_CurrentUser()


   at App.UI.SharedWeb.BasePageHelper.GetLoggedInUserLCID()


   at App.UI.SharedWeb.BasePage.InitializeCulture()


   at ASP.summary_aspx.__BuildControlTree(summary_aspx __ctrl)


   at ASP.summary_aspx.FrameworkInitialize()


 


Cause


Apparently it is somewhere within .net framework code and seems to be related to a race condition when writing into a hashtable:


Resolution/Workaround


You can call Microsoft support and obtain the fix for 968432. Please note that there is no public hotfix for this issue yet.


 


Hope this helps!


 


Keywords: .net 3.5 SP1, InvalidOperationException, Hashtable insert failed. Load factor too high. ,System.Collections.Hashtable.Insert, System.Collections.Hashtable.set_Item

Comments (3)

  1. Scott S. says:

    We've been experiencing this on our high volume production site recently.  We're running .NET 3.5 SP1 on Windows Server 2003.  We can usually reset IIS when the site starts misbehaving and the problem goes away for a while.  This is not ideal and we'd like to have a fix for the problem.  Can you tell me if there are any downsides or potential side affects from applying the hotfix?

  2. hari_d says:

    Hi Scott,

    We have issued this fix to few customers and no one reported any issues with this fix. I suggest you can get this fix and try it in your test environment by producing load. Based on the results, you can take a decession to roll it to production.

    There should be a public release of this fix soon.

    Thanks,

    Hari