[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)