laitimes

Microsoft 2022 new bug: A large number of programmers work overtime overnight, only because of date data overflow

Xiao Zhen is from The Temple of Oufei

Qubits reports | Official account QbitAI

Unexpectedly, the arrival of 2022 has also brought a new bug to Microsoft.

With the date jumping from December 31, 2021 to January 1, 2022, many companies using Microsoft Exchange found that they had written New Year's greetings and other emails, and suddenly could not send out.

Exchange Server is Microsoft's suite of e-mail service components that can be used to build mail systems for businesses, universities, or institutions. In simple terms, it can not only build a "mailbox work group", but also coordinate internal workflows.

These companies have a large number of mail stranded in their Mailbox servers, some even reaching hundreds of thousands of messages, facing the problem that the server cannot store it.

At present, this bug has been thousands of hits on Reddit, and many people said that "the year has not been good enough to fix the bug here":

Microsoft 2022 new bug: A large number of programmers work overtime overnight, only because of date data overflow

Happy New Year(Beep)!

Microsoft 2022 new bug: A large number of programmers work overtime overnight, only because of date data overflow

I was still on vacation, so I was pulled back to deal with this thing...

Microsoft 2022 new bug: A large number of programmers work overtime overnight, only because of date data overflow

So what the hell is going on?

Microsoft 2022 Edition of "Millennium Bug"

According to Joseph Roosen, an Exchange administrator, this is a bug due to the arrival of "2022".

The root cause of this bug is that Microsoft's Exchange mail filtering management system (FIP-FS) uses a signed variable called "yymmddHHMM" (Int32, or long) to store dates.

Microsoft 2022 new bug: A large number of programmers work overtime overnight, only because of date data overflow

Among them, yymmddHHMM refers to the use of two digits to store years (years), months ( months ) days ( days ) , hours ( Hours ) ( Minutes ) .

There is a problem with this data type:

Signed Int32 can only store data from -2147483647 to +2147483647 at most.

However, since 00:00 on January 1, 2022, the yy of "yymmddHHMM" has become "22", exceeding the maximum range of data that Int32 can store:

2147483647

22XXXXXXX

So, on January 1, 2022, all companies that emailed with Exchange servers received this error alert:

The FIP-FS Scan Process failed initialization. Error: 0x8004005. Error Details: Unspecified Error” or “Error Code: 0x80004005. Error Description: Can't convert "2201010001" to long.(FIP-FS scan processing initialization failed... Unable to convert "2201010001" to long data type)

It was initially discovered by a Twitter user named @miketheitguy:

Microsoft 2022 new bug: A large number of programmers work overtime overnight, only because of date data overflow

Since the same bug as the Millennium Bug is a date to the computer, this bug was also named Y2K22 by some Exchange administrators.

Among them, Y2K refers to the famous "millennium bug" problem, because some computer programs only use two decimal numbers to represent the year, and there will be incorrect results across centuries; 22 refers to 2022.

This bug has the same problem in many exchange Server versions, including 2016 and 2019.

Microsoft 2022 new bug: A large number of programmers work overtime overnight, only because of date data overflow

At present, Microsoft's Exchange team is in urgent repair.

They say an Exchange Server update will be released in a few days, which will hold dates with a larger variable type.

Microsoft 2022 new bug: A large number of programmers work overtime overnight, only because of date data overflow

Before that happened, however, companies using Exchange Server had to find a way to send mail.

Some expedient measures

The Microsoft team said that if there is a very urgent email that needs to be sent, it needs to turn off the FIP-FS function in Exchange first.

This is an Exchange spam filter that is usually used to scan emails for malware or spam.

At present, Microsoft officials also provide some ways to disable or bypass malware scanning.

However, the consequence of this is that the company mailbox "may receive more spam."

Some netizens joked that if Microsoft changes the signed variable to an unsigned variable in the repair, then the data representation range will become 0 ~ 4294967295, and the Exchange mailbox can be used until 2043.

Microsoft 2022 new bug: A large number of programmers work overtime overnight, only because of date data overflow

In addition to this, reddit netizens have also given some other solutions.

For example, a netizen posted an unofficial custom script that rolls back the date to 2021, but he said that all risks need to be borne by the user himself.

If you haven't figured out how to fix your Exchange mailbox system problem, you can try these methods first.

Microsoft 2022 new bug: A large number of programmers work overtime overnight, only because of date data overflow

Read on