Scott Hanselman

Weird...first time my blog's been down, well, ever...

May 20, '04 Comments [0] Posted in ASP.NET | DasBlog | XML
Sponsored By

Weird, er, ah.  That was the first time the blog's ever been down that I know of.  I was posting remotely via BlogJet (the blogger API) and somehow the new dasBlog 1.6 Cache got out of whack.  I recycled the Worker Process and deleted entryCache.xml, categoryCache, and blogdata.xml and I'm back.

For those who care, here's the event log:

l2 time 2004-05-20T02:30:02 code 750 message <span>XSSUpstreamError:<br/>Collection was modified; enumeration operation may not execute.<br/> while processing    at System.Collections.ArrayListEnumeratorSimple.MoveNext()
   at newtelligence.DasBlog.Runtime.EntryIdCache.Build(DataManager data)
   at newtelligence.DasBlog.Runtime.EntryIdCache.Ensure(DataManager data)
   at newtelligence.DasBlog.Runtime.BlogDataServiceXml.GetDateForEntry(String entryId)
   at newtelligence.DasBlog.Runtime.BlogDataServiceXml.newtelligence.DasBlog.Runtime.IBlogDataService.GetCommentsFor(String entryId)
   at newtelligence.DasBlog.Web.Services.SyndicationServiceImplementation.GetRssCore(String category, Int32 maxDayCount, Int32 maxEntryCount)
   at newtelligence.DasBlog.Web.Services.XSSUpstreamer.Run().</span>
l2 time 2004-05-20T02:30:03 code 1 message <span>Error:<br/>System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
<br>   at System.Collections.ArrayListEnumeratorSimple.MoveNext()
<br>   at newtelligence.DasBlog.Runtime.EntryIdCache.Build(DataManager data)
<br>   at newtelligence.DasBlog.Runtime.EntryIdCache.Ensure(DataManager data)
<br>   at newtelligence.DasBlog.Runtime.BlogDataServiceXml.GetDateForEntry(String entryId)
<br>   at newtelligence.DasBlog.Runtime.BlogDataServiceXml.InternalGetEntry(String entryId)
<br>   at newtelligence.DasBlog.Runtime.BlogDataServiceXml.newtelligence.DasBlog.Runtime.IBlogDataService.GetEntry(String entryId)
<br>   at newtelligence.DasBlog.Web.Core.SharedBasePage.SetupPage(Object o, EventArgs e)
<br>   at System.EventHandler.Invoke(Object sender, EventArgs e)
<br>   at System.Web.UI.Control.OnInit(EventArgs e)
<br>   at newtelligence.DasBlog.Web.PermaLink.OnInit(EventArgs e)
<br>   at System.Web.UI.Control.InitRecursive(Control namingContainer)
<br>   at System.Web.UI.Page.ProcessRequestMain()<br/> while processing
http://www.hanselman.com/blog/PermaLink.aspx?guid=b849dcaa-81f0-4733-9fff-f7399fb6ed01.</span>

then some

l2 time 2004-05-20T02:30:05 code 1 message <span>Error:<br/>System.ArgumentNullException: Value cannot be null.
<br>Parameter name: value
<br>   at System.Web.Caching.CacheEntry..ctor(String key, Object value, CacheDependency dependency, CacheItemRemovedCallback onRemovedHandler, DateTime utcAbsoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, Boolean isPublic)
<br>   at System.Web.Caching.CacheInternal.DoInsert(Boolean isPublic, String key, Object value, CacheDependency dependencies, DateTime utcAbsoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback, Boolean replace)
<br>   at System.Web.Caching.Cache.Insert(String key, Object value, CacheDependency dependencies)
<br>   at newtelligence.DasBlog.Runtime.EntryIdCache.Load(DataManager data)
<br>   at newtelligence.DasBlog.Runtime.EntryIdCache.Ensure(DataManager data)
<br>   at newtelligence.DasBlog.Runtime.BlogDataServiceXml.newtelligence.DasBlog.Runtime.IBlogDataService.GetDaysWithEntries(TimeZone tz)
<br>   at newtelligence.DasBlog.Web.Core.WeblogCalendar.WeblogCalendar_Load(Object sender, EventArgs e)
<br>   at System.Web.UI.Control.OnLoad(EventArgs e)
<br>   at System.Web.UI.Control.LoadRecursive()
<br>   at System.Web.UI.Control.LoadRecursive()
<br>   at System.Web.UI.Control.LoadRecursive()
<br>   at System.Web.UI.Control.LoadRecursive()
<br>   at System.Web.UI.Page.ProcessRequestMain()<br/> while processing
http://www.hanselman.com/blog/Default.aspx.</span>

then a whole lot of...

l2 time 2004-05-20T02:35:03 code 1 message <span>Error:<br/>System.ArgumentNullException: Value cannot be null.
<br>Parameter name: value
<br>   at System.Web.Caching.CacheEntry..ctor(String key, Object value, CacheDependency dependency, CacheItemRemovedCallback onRemovedHandler, DateTime utcAbsoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, Boolean isPublic)
<br>   at System.Web.Caching.CacheInternal.DoInsert(Boolean isPublic, String key, Object value, CacheDependency dependencies, DateTime utcAbsoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback, Boolean replace)
<br>   at System.Web.Caching.Cache.Insert(String key, Object value, CacheDependency dependencies)
<br>   at newtelligence.DasBlog.Runtime.EntryIdCache.Load(DataManager data)
<br>   at newtelligence.DasBlog.Runtime.EntryIdCache.Ensure(DataManager data)
<br>   at newtelligence.DasBlog.Runtime.BlogDataServiceXml.GetDateForEntry(String entryId)
<br>   at newtelligence.DasBlog.Runtime.BlogDataServiceXml.InternalGetEntry(String entryId)
<br>   at newtelligence.DasBlog.Runtime.BlogDataServiceXml.newtelligence.DasBlog.Runtime.IBlogDataService.GetEntry(String entryId)
<br>   at newtelligence.DasBlog.Web.Core.SharedBasePage.SetupPage(Object o, EventArgs e)
<br>   at System.EventHandler.Invoke(Object sender, EventArgs e)
<br>   at System.Web.UI.Control.OnInit(EventArgs e)
<br>   at newtelligence.DasBlog.Web.PermaLink.OnInit(EventArgs e)
<br>   at System.Web.UI.Control.InitRecursive(Control namingContainer)
<br>   at System.Web.UI.Page.ProcessRequestMain()<br/> while processing
http://www.hanselman.com/blog/PermaLink.aspx?guid=6083af1e-42c1-4d54-a33d-a5bef622a503.</span>

Looks like some schmutz around the small cached portion of the Xml Data Store is corrupt, there's no Assert() or check for null and null is inserted into the in memory ASP.NET cache?  The first dump shows EntryIdCache freaking out, then the other cache didn't stand a chance.  Looks like maybe the Radio Upstream happened JUST as I was sending data in via the Blogger API?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb
Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.