In case anybody was in any doubt about the suitability of Microsoft products as servers, of any kind, The Register is reporting this week that something as simple as handling the extra day in February this year passed them by. Most amusing perhaps is that the technology preview, released just two days before the leap day, was affected.
Nonetheless, the SQL Server 2008 “community technology preview” was brought down by the dreaded Leap Year Day bug just 48 hours after Microsoft unveiled it. “We have recently discovered an issue with SQL Server 2008 CTPs that result in SQL Server 2008 not starting on Feb 29 GMT only,” read a statement from the company. “We recommend that you do not run or install this CTP on Feb 29 GMT to minimize any impact in your environment. You can install starting on March 1 GMT.”
The advice given by Microsoft? Don’t install it or run it on that day. Great solution guys. Would that answer be the same for production software? No reason to think otherwise since they left UK users with the wrong time on all their machines for a week not that long ago when they got the daylight savings rules wrong. So, that web site you run with SQL Server as a backend – just turn it off for a day to “minimize the impact” of their poor quality software. I’ve got a better idea: spend that day upgrading to a real platform (try Linux or FreeBSD).
But it gets better:
And there was a very similar problem with Windows Small Business Server. On Leap Year Day, Windows SBS was unable to issue itself certificates because it stamped each certificate with the date February 29, 2013. So, it failed to recognize the correct date. And it replaced the correct date with a date that doesn’t exist.
Not only did it fail to understand the leap day in the date, it then compounds the problem by producing certificates with a non-existent date on them instead of just saying the date is invalid! But since it is only a small business product, no problem just leaving it that way. They won’t sue Microsoft after all – they don’t have the cash to do that.