497 days of uptime kills Windows
If you’re running a lot of internally-facing Windows servers doing all manner of niche things, chances are some of them will have been ticking along nicely for some time now.
Some of them may not have been rebooted for quite a while, and although you know you probably should patch them and give them a spring-clean, there’s always more important things on the list.
Well beware, as Windows has a critical fault with an uptime counter that kills the TCP/IP stack after 497 days, causing the server to slowly but surely fall off the network over the few days that follow.
This affects Vista, Windows 7, Server 2008 and Server 2008 R2 and there’s no automatic patch – you have to download a hot-fix on request from Microsoft which, rather ironically, requires a reboot to apply.
So be warned, even if you’re happy with those boxes just ticking along internally without the latest updates, Microsoft will force you to reboot them one way or another eventually!
Maybe time to check over that Hyper-V console and take a look at the up-times?
Why 497 days?
If you’re a developer you’ll know all about overflows – when the available space to store a number runs out - the most famous of course being the Y2K problem.
Well this one is just the same, except here we’re looking at number of 10 millisecond ticks since boot trying to fit into a 32 bit unsigned integer which runs out, you guessed it, after 497 days.
Some systems have a problem at 248 days (half of that) if they use a signed 32 bit integer to store the value (one less bit to work with) – in fact, if you read the above Microsoft post, you’ll see that the 248 day problem can kill Windows long before you hit the 497 day mark if you’re using TCP/IP chimney offload.
This sort of problem affects not only Windows but Linux, UNIX and other operating systems too:
So the moral of the story? Every once in a while, we all need a reboot.