本栏推荐

相关阅读

快讯信息

您现在的位置是:主页 > 品牌 > 微软 >

微软年初遭遇重大漏洞 众多程序员熬夜加班:新年伊始不顺利

发布时间:2022年01月02日 18:36:41 微软 人已围观

简介2022年伊始,微软Exchange遭遇新bug,许多用户发现无法发送已准备好的新年祝福邮件。问题出现在日期转换时,影响到多家公司。这一故障引发广泛关注,对用户沟通造成了困扰。微软方...

意想不到的是,2022年的到来为微软带来了一个新问题。

在2021年12月31日转变为2022年1月1日后,许多依赖微软Exchange的企业突然发现,提前准备的新年问候邮件无法发送。

Exchange Server是微软推出的一套邮件服务解决方案,适用于建立企业、高校或其他组织的邮件系统。简而言之,它不仅能创建“邮箱工作组”,还能优化内部工作流程。

这些企业的邮箱服务器上积累了大量邮件,有的甚至达数十万封,面临存储压力。

目前,这个问题在Reddit上引发广泛关注,许多用户调侃道:“刚过新年就忙着修bug。”:

新年快乐!(哔)

我本来正享受假期,却被叫回来处理这个问题……

究竟发生了什么?

微软2022年的“千年虫”

一位名为Joseph Roosen的Exchange管理员表示,这个问题是“2022年”问题导致的。

问题根源在于Exchange中的邮件过滤管理系统(FIP-FS),它使用了一种名为“yymmddHHMM”的有符号变量(Int32,也即long)来存储日期。

其中,yymmddHHMM分别用两位数字表示年份、月份、日期、小时和分钟。

这个数据类型存在一个问题:

有符号的Int32最多只能存储-2147483647到+2147483647的数据。

然而,从2022年1月1日0时起,“yymmddHHMM”的yy已经变成了“22”,超出了Int32的最大存储范围:

2147483647

22XXXXXXX

因此,在2022年1月1日这一天,所有使用Exchange服务器发送邮件的公司都收到了这样的错误信息:

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扫描处理初始化失败……无法将“2201010001”转变为long数据类型)

这一问题最初由Twitter用户@miketheitguy发现:

由于这一问题与“千年虫”类似,部分Exchange管理员将其命名为Y2K22。

其中,Y2K指的是著名的“千年虫”问题,因为某些程序仅用两位数表示年份,导致跨世纪时出现错误;而22则代表2022年。

该bug在多个版本的Exchange Server中均有类似的表现,包括2016和2019版。

Tags: Bug  微软