


在2000年1月1日,全世界的电脑差点集体宕机。可能是计算机出现以来,最大的一次bug了。
但引发这个bug的原因,却是一件不起眼的小事。


比如记录年份时,全世界约定俗成只保留后面两位数字。像「1996年」,只记下「96」。
来到2000年1月1日00:00,问题就出现了:

这就可能导致,某些特定程序计算出来的结果不对,更严重的会让电脑宕机。


还好有些程序猿提前想到了这问题,最终不至于闹到全世界出大bug。


就在最近,谷歌发出警告称:谷歌Chrome、微软Edge、火狐Firefox,今年(2022年)可能会出现,某些网站无法正常运行的情况。






它们要是出什么毛病,这影响可不小,怪不得被网友称作「千年虫危机2.0」。
只是这好端端的,怎么会出现这种情况?

目前这三个浏览器的版本,如果以最新测试版来计算的话,分别是:
Chrome 97
Edge 98
Firefox 97
它们一般情况下,每6个星期就会进行一次大版本更新。
So,按时间推断,将会在今年上半年,到达版本号100。
像谷歌更是已经公布,Chrome 100将在2022年3月发布。


可能有机友会好奇,版本号多了一位,也不至于闹得很多网站不能运行吧?

可能当时也没考虑这么多,只设定了读取浏览器前两位版本号。
比如说机哥这台电脑,有些网站会先搜索「Chrome/」关键词,然后读取它后面的「96」版本号。

所以,一旦变成「Chrome/100」,这些网站只会看到「10」,一下子变成古老的版本。

接下来,更加好笑的事情来了。

所以说,Chrome 100,在它们眼中就是不该存在的玩意啊,赶紧杀掉杀掉。


经过测试,无论是「99」还是「999」,它都能正常运行。但无论是「100」还是「10」,都会报错。
这不就是一个大乌龙么……

(这是一个特定程序,403为报错,200为正常)



过去这么多年来,都没出过大事故,是因为Chrome上一次多出一位版本号,从9升到10,已经是2011年的事情了。


机哥今天掐指一算,Chrome从2008年到2011年,只迭代了10个大版本,平均一年更新3个。按照这个速度,其实需要很久才能达到「100」。

十年时间更了差不多90个大版本,平均一年更新9个。



但现在木已成舟,有没有法子解决这个事情呢?


机哥看到,目前谷歌想出了两套解决方案。
第一个是,赶紧在今年3月之前,找到那些会崩溃的网站……所以现在Chrome、Firefox、Edge都在不断联系相关的开发者。



所以,谷歌还整了一套Plan B:

简单来说就是,以后版本号开头都是99,然后把主版本号放到后面。

这操作,高通骁龙8 Gen1直呼内行。


不管怎么说,能解决事情就好……机哥上一次这么无语,还是上一次。
搞得几个科技巨头同时如此头疼的事情,可不多见。



像之前,有人把iPhone的日期调回1970年1月1日或之前,手机一旦重启就会变砖。

这是因为,1970.1.1是苹果系统的时间原点。

或许,设计出来的时候,也没想过有人这么闲得蛋疼,把时间调回去半个世纪以前吧。
后来苹果的解决办法倒也简单,把iOS系统的时间设置,锁定在2001年1月1日之后。

(苹果:通过系统更新解决)

很多时候,在设计时可能会带有时代的局限性,没把十几年后,甚至几十年后,也考虑进来。
或许,随着技术的发展、我们对数字世界认知越来越多,类似的事件才会减少吧。