[HN Gopher] Microsoft confirms Exchange Year 2022 problem ___________________________________________________________________ Microsoft confirms Exchange Year 2022 problem Author : niuzeta Score : 122 points Date : 2022-01-02 18:08 UTC (4 hours ago) (HTM) web link (borncity.com) (TXT) w3m dump (borncity.com) | cpeterso wrote: | Summary of the bug: Exchange tried to store "2201010001" (i.e. | date time '22-01-01 00:00) in a 32-bit signed int, but INT_MAX is | 2147483647 so the result is a negative number. | 29athrowaway wrote: | Or std::numeric_limits<int>::max() | grishka wrote: | Why is anyone using _two-digit years_ anywhere at all? This | approach has already caused a lot of trouble 22 years ago. Do | people learn nothing from their past mistakes? | phkahler wrote: | Oh they should have used an UNSIGNED number. /sarcasm | sdoering wrote: | Damn. This reminds me of the alleged 'Nuclear Gandhi' [1]. | | Or the Swiss railway axle counter [2]. | | [1]: https://en.wikipedia.org/wiki/Nuclear_Gandhi | | [2]: | https://www.reddit.com/r/programming/comments/4sco75/the_axl... | hn_throwaway_99 wrote: | Storing dates in YYMMDDHHMM format but _then_ saving that as an | int seems like such an ... odd choice. Curious to how /why that | decision was made, or if it was perhaps unintentional but | nobody noticed before (e.g. comparison was done on those date | values but nobody realized that they were for some reason | coerced to ints, and nobody noticed because it still worked as | expected). | dang wrote: | Submitters: please don't editorialize titles. This is in the site | guidelines: https://news.ycombinator.com/newsguidelines.html. | We've reverted the title now. (Submitted title was "Y2K problem | came back with vengeance in 2022".) | indigodaddy wrote: | Only the mods get to do that | DoctorOW wrote: | Do the mods do that? | pc86 wrote: | I don't think it's particularly widespread, and if _anyone_ | can do it it makes sense for mods to have that power. | However I have on numerous times (in absolute terms) seen | mods change titles to something more informative than the | original. I wouldn 't necessarily call that | "editorializing," though. | hn_throwaway_99 wrote: | There are mods, plural? I.e. someone else besides dang? | sharmin123 wrote: | mproud wrote: | So many spelling mistakes! | zinekeller wrote: | Originally in German, this is a best-effort translation by the | author. | ocdtrekkie wrote: | I love the solution: They changed their antimalware definition | files to December 33rd, 2021, until they have a more substantial | patch ready. The instructions are just to basically clear out the | existing files and re-download to get rid of that pesky 2022 | year. | axjmc wrote: | Perhaps switch to unsigned int until a sane solution is | implemented. Should give them a couple thousand years to work | with. | Fatnino wrote: | No, it just kicks the can down the road another 22 years. | axjmc wrote: | At first glance thought they were using yyyy format, it's | actually only yy. You are correct. | ocdtrekkie wrote: | It's pretty likely they'll change the data type somehow, but | I guess the question is how fast they can test how that | interacts with everywhere that might encounter that variable. | Presumably the hack they implemented here buys them at least | a month or two to test a real code change. | MauranKilom wrote: | Wow, what a bug. | | The malware scanning service of MS Exchange crashes, because it | treats a yyMMddHHmm timestamp as a signed integer when verifying | a signature file. | | Turns out that 2201010001 is negative when treated as a 32 bit | integer (the greatest positive one is 2147483647, and 2021 had | fewer than 47 months). | | I can only assume that somebody wrote that "timestamp string as | integer" code, checked that it worked correctly (at the time) and | then just assumed they must be good on data type range. | [deleted] | crehn wrote: | Surprised this sort of hack would even pass code review. | hn_throwaway_99 wrote: | Really? Billions of lines of code is reviewed every year at | Microsoft. Not hard for me to imagine that this was coerced | to an int somewhere (perhaps even unintentionally) that was | non-obvious during a code review. | edoceo wrote: | I wouldn't call one bug, in one software a "vengeance". Yea, it's | widly used, and affected lots of mail but was very limited and | had a trivial work-around. | | But, the Y2K issue, back then, was in 1000s of software from | 1000s of vendors. The only Y2K affect I remember was the first | issue of 2600 in 2000. | Fatnino wrote: | I remember the laser-tag place near Google (now long gone) | would print out your scorecard with a date like 11/24/102 | throwawayboise wrote: | Yeah I saw that sort of thing frequently on smaller websites | back then as well. | laumars wrote: | It also wasn't just the tick over to the year 2000. It was | various dates and times around the year 2000 (leap years et | al). But the Jan 01 2000 problem was the biggest and most high | profile. | greenyoda wrote: | This bug was extensively discussed yesterday: | | _Microsoft Exchange stops passing mail due to bug on 1 /1/22 | (677 points / 355 comments)_ | | https://news.ycombinator.com/item?id=29756714 ___________________________________________________________________ (page generated 2022-01-02 23:00 UTC)