﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>MF commented on An epic bug story</title><description>so the fix is to make a scheduled task which reboots the system at midnight every couple of days?
  
  
;)
</description><link>http://ayende.com/4270/an-epic-bug-story#comment20</link><guid>http://ayende.com/4270/an-epic-bug-story#comment20</guid><pubDate>Wed, 04 Nov 2009 07:55:04 GMT</pubDate></item><item><title>HereBeDragon commented on An epic bug story</title><description>Nail Biting. I read through this story in one single sitting. ;-)
</description><link>http://ayende.com/4270/an-epic-bug-story#comment19</link><guid>http://ayende.com/4270/an-epic-bug-story#comment19</guid><pubDate>Mon, 02 Nov 2009 12:42:34 GMT</pubDate></item><item><title>Pop Catalin commented on An epic bug story</title><description>So many people were asking for a reboot ... a reboot does not "fix" or help find the bug. 
  
  
Reminds me of a joke ... 
  
</description><link>http://ayende.com/4270/an-epic-bug-story#comment18</link><guid>http://ayende.com/4270/an-epic-bug-story#comment18</guid><pubDate>Fri, 30 Oct 2009 02:37:20 GMT</pubDate></item><item><title>Andrew commented on An epic bug story</title><description>Re: Why didn't they just restart the Production Servers.
  
  
I've never worked anywhere where IT would reboot a Production Box unless it was a last resort. 
</description><link>http://ayende.com/4270/an-epic-bug-story#comment17</link><guid>http://ayende.com/4270/an-epic-bug-story#comment17</guid><pubDate>Thu, 29 Oct 2009 17:24:50 GMT</pubDate></item><item><title>Rob commented on An epic bug story</title><description>These sorts of bugs are made by the same sorts of people who write code like this to prevent users from resizing forms.
  
  
//Handle resize event.
  
void Resize()
  
{
  
     this.Width = 200;
  
     this.Height = 200;
  
}
  
  
rather than just setting the forms border property to one of the fixed size values and letting windows handle it.
  
  
Its realy just a lack of knowledge about the environment or framework being used to code the solution.
</description><link>http://ayende.com/4270/an-epic-bug-story#comment16</link><guid>http://ayende.com/4270/an-epic-bug-story#comment16</guid><pubDate>Thu, 29 Oct 2009 16:59:31 GMT</pubDate></item><item><title>Joe commented on An epic bug story</title><description>Moral of the story:
  
When in doubt, get Jane to look at the code. 
  
</description><link>http://ayende.com/4270/an-epic-bug-story#comment15</link><guid>http://ayende.com/4270/an-epic-bug-story#comment15</guid><pubDate>Thu, 29 Oct 2009 16:40:46 GMT</pubDate></item><item><title>tobi commented on An epic bug story</title><description>i wonder why they didn't just try rebooting the production servers. the problem would have been solved immediately.
</description><link>http://ayende.com/4270/an-epic-bug-story#comment14</link><guid>http://ayende.com/4270/an-epic-bug-story#comment14</guid><pubDate>Thu, 29 Oct 2009 14:51:44 GMT</pubDate></item><item><title>Pop Catalin commented on An epic bug story</title><description>There are many horror stories regarding pseudo random number generators (like TickCount % n, or very similar), I wish people would use Random() instead of inventing their own pseudo random generators or pseudo ID generators.
  
  
I guess this is where the true difference between developers is made, developers that try to write clever code and those that try to write solid code. I wonder if all those shaved microseconds from using tick count added up payed for those down times. 
  
  
This is not an epic bug this is epic fail, there are so many TickCount horror stories out there, that any non ignorant developer (especially those writing server applications) would always see big warning signs over code that uses it.
  
  
The 1st thing: what happens if the system timer resolution changes ? (like a new piece  of hardware, a software update or something else) then you've got a terribly biased pseudo random number generator or what's the distribution like in the fist place? I wonder how can anyone think to use such a mechanism in the first place ... 
  
  
The 2nd thing: such an micro optimization won't have a measurable impact in the final application (application that executes queries over network) no matter how you try to measure it. Those microseconds will be entirely shadowed by the network latency times.
  
  
Man, I hate clever hacks so much, I've been bitten by them quite a few times (hacks written by others). 
  
  
</description><link>http://ayende.com/4270/an-epic-bug-story#comment13</link><guid>http://ayende.com/4270/an-epic-bug-story#comment13</guid><pubDate>Thu, 29 Oct 2009 10:32:12 GMT</pubDate></item><item><title>Philip L&amp;#248;ventoft commented on An epic bug story</title><description>In my university they reboot our RADIUS servers repeatedly controlling the Eduroam wi-fi, because appearently it will leak some kind of handles and once it has lost a handle it cannot get a new one. The problem is that there is only a fixed number of handles, so after a certain number of lost handles, it will refuse new users to log on to the network. 
  
  
It is pretty dumb, but it is one of those cases where we are using generic software so the vendor cannot make a bug fix. 
</description><link>http://ayende.com/4270/an-epic-bug-story#comment12</link><guid>http://ayende.com/4270/an-epic-bug-story#comment12</guid><pubDate>Thu, 29 Oct 2009 09:21:08 GMT</pubDate></item><item><title>Liam McLennan commented on An epic bug story</title><description>In reality, once they figured out that rebooting solved the problem they would have setup a schedule to reboot the servers every week and moved on. I know of large organisations that reboot their servers every 48 hours because of bugs like these.
</description><link>http://ayende.com/4270/an-epic-bug-story#comment11</link><guid>http://ayende.com/4270/an-epic-bug-story#comment11</guid><pubDate>Wed, 28 Oct 2009 20:10:34 GMT</pubDate></item><item><title>Jimmy Zimmerman commented on An epic bug story</title><description>&gt;That's why you should never restart a development machine. If you restart, you miss obvious bugs that happens for machines running over 25 days ;) 
  
  
Yup. Burn-in testing is a must for enterprise systems. It's not good enough that the test team verifies the functionality delivered from the requirements but that the entire system continues to run longer than a simple regression cycle.
  
  
PS. Oren, yes I know I still owe you answers from Alex James - i haven't forgot. Just in the middle of proposal land right now and it's killing me a little inside every day  =D
</description><link>http://ayende.com/4270/an-epic-bug-story#comment10</link><guid>http://ayende.com/4270/an-epic-bug-story#comment10</guid><pubDate>Wed, 28 Oct 2009 18:20:39 GMT</pubDate></item><item><title>Reboot commented on An epic bug story</title><description>Cute story, but anyone knows that rebooting the server is the FIRST thing they would have tried. OK, maybe the second, after resetting IIS. So the whole thing is kinda disappointing when I got to the end.
  
</description><link>http://ayende.com/4270/an-epic-bug-story#comment9</link><guid>http://ayende.com/4270/an-epic-bug-story#comment9</guid><pubDate>Wed, 28 Oct 2009 17:22:33 GMT</pubDate></item><item><title>Andrey Titov commented on An epic bug story</title><description>Once we found that our development web server runs out of space and all space was eaten by constantly growing event log. The log was full of exception messages on invalid web service calls.
  
We found this bug only when one developer was sick, but his computer stays running and one tricky page stays opened in his browser. This page does request to web service every minute in normal situation. But once we changed signature of web service method. And this page became mad. If request to service fails it was tried to repeat it after one second and repeated this infinitely making DOS attack to server. After that we changed this page to repeat calls only after 5 minutes after few unsuccessful tries.
  
</description><link>http://ayende.com/4270/an-epic-bug-story#comment8</link><guid>http://ayende.com/4270/an-epic-bug-story#comment8</guid><pubDate>Wed, 28 Oct 2009 14:49:40 GMT</pubDate></item><item><title>Nicholas Piasecki commented on An epic bug story</title><description>Hmm.
  
  
Still not sure what Environment.TickCount has to do with the size of a scrollbar in a textbox, but sure is a neat story!
  
  
=)
</description><link>http://ayende.com/4270/an-epic-bug-story#comment7</link><guid>http://ayende.com/4270/an-epic-bug-story#comment7</guid><pubDate>Wed, 28 Oct 2009 14:34:58 GMT</pubDate></item><item><title>configurator commented on An epic bug story</title><description>That's why you should never restart a development machine. If you restart, you miss obvious bugs that happens for machines running over 25 days ;)
</description><link>http://ayende.com/4270/an-epic-bug-story#comment6</link><guid>http://ayende.com/4270/an-epic-bug-story#comment6</guid><pubDate>Wed, 28 Oct 2009 13:37:10 GMT</pubDate></item><item><title>Roy commented on An epic bug story</title><description>Have you tried turning it off and on again?
</description><link>http://ayende.com/4270/an-epic-bug-story#comment5</link><guid>http://ayende.com/4270/an-epic-bug-story#comment5</guid><pubDate>Wed, 28 Oct 2009 12:24:13 GMT</pubDate></item><item><title>Dan commented on An epic bug story</title><description> if(server.IsAlive == false)
  
    {
  
        aliveAndWellServes.Remove(server);
  
        server.Dispose();
  
    }
  
    return server;
  
  
first dispose server then return a reference to it?
</description><link>http://ayende.com/4270/an-epic-bug-story#comment4</link><guid>http://ayende.com/4270/an-epic-bug-story#comment4</guid><pubDate>Wed, 28 Oct 2009 12:02:35 GMT</pubDate></item><item><title>Cory Foy commented on An epic bug story</title><description>That's why one of the first things I used to do when I was flown in for these kinds of issues was to connect to the app with WinDBG and monitor for First Chance Exceptions. In fact, a quick story...
  
  
We had a similar call to what you had above. The CTO for a major company and the CEO of their development consulting were on the phone, along with their account manager from MSFT and myself as the tech lead. They were having a major issue with errors on their e-commerce site that was causing them to lose a lot of money. I suspected it was an application error, but the CTO was blaming us and the vendor, and the vendor was blaming us.
  
  
While we were on the conference call, I asked them to send me what they had deployed and when the issue started occurring. They sent it and told me. While they were yelling back and forth, I cracked open the code and saw at the top of one of the methods:
  
  
//MJF: Modified 10/2/2009 to handle XYZ scenario
  
  
10/2/2009 happened to be when the issue started occurring, and also happened to be the only comment with such a date. I broke into the conversation and asked the vendor if they had a developer with the initials MJF, because the code I saw could cause an error condition under a certain set of scenarios - which wasn't being handled. There was dead silence on the vendor side, and within 2 minutes they came back and said they had found the issue and would be resolving it. 
  
  
It was one of the best feelings of my life, to find a perfect smoking gun. In this case, there wasn't the option to protect the vendor (I tried to be as gentle as possible), but at least they were able to find the issue and get it back up.
  
  
So, great story about knowing your framework, and about finding the root cause. I was amazed they didn't start looking for patterns during the second outage, but at least someone eventually did.
</description><link>http://ayende.com/4270/an-epic-bug-story#comment3</link><guid>http://ayende.com/4270/an-epic-bug-story#comment3</guid><pubDate>Wed, 28 Oct 2009 11:25:59 GMT</pubDate></item><item><title>jokin commented on An epic bug story</title><description>For a moment I thought I was reading this at codinghorror.com
  
  
Good bug catch, but i wonder  why  they didn't  reboot the machines before changing the kernel, at least, that is the universal solution in IT
</description><link>http://ayende.com/4270/an-epic-bug-story#comment2</link><guid>http://ayende.com/4270/an-epic-bug-story#comment2</guid><pubDate>Wed, 28 Oct 2009 11:17:42 GMT</pubDate></item><item><title>PeterFox commented on An epic bug story</title><description>Probable typo in the first paragraph: I guess you meant to say the system was gone, not done.
  
Why this story is fictitious: no one would have the courage to wake up the *female* member of the team in the middle of the night with a problem like that. Think of the repercussions. :)
</description><link>http://ayende.com/4270/an-epic-bug-story#comment1</link><guid>http://ayende.com/4270/an-epic-bug-story#comment1</guid><pubDate>Wed, 28 Oct 2009 11:12:16 GMT</pubDate></item></channel></rss>