This post originated from an RSS feed registered with .NET Buzz
by Scott Hanselman.
Original Post: Weird...first time my blog's been down, well, ever...
Feed Title: Scott Hanselman's ComputerZen.com
Feed URL: http://radio-weblogs.com/0106747/rss.xml
Feed Description: Scott Hanselman's ComputerZen.com is a .NET/WebServices/XML Weblog. I offer details of obscurities (internals of ASP.NET, WebServices, XML, etc) and best practices from real world scenarios.
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.
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?