This week’s Bug of the Week Award goes to
From Cyrus Najmabadi, Software Design Engineer on the C# team:
“Interesting bug. As one might have guessed from the repro steps we got into an infinite loop when searching for the list of overridable methods, had a stack overflow and the program terminated. This was a bug we saw quite a bit in the VS2003 time frame. Far too much code assumed that it was safe to walk our symbol graph arbitrarily because it thought it was in some canonical form (like where no loops existed). In VS2005 I removed pretty much all occurrences of code like that and replaced it with objects that could walk the graph and not run into problems like that. i.e. Depth and breadth searchers that could be utilized by other algorithms in the language service.
Unfortunately this area was missed and I’m glad that it was caught since it’s so disastrous. Thanks much to the community for reporting to us on this!”