因程序员少打一个字符,大量用户电脑出现严重Bug!

源码共读

共 2218字,需浏览 5分钟

 ·

2021-09-02 14:24

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇


作者丨汤泡饭 

来源丨扩展迷EXTFANS


如果要问,程序员的劲敌是什么?


不容置疑,答案一定是Bug的出现。



前几日,就连互联网大厂谷歌的程序员都犯了低级错误。


近期,谷歌为Chromebook推送了Chrome OS 91版本,版本号91.0.4772.165。


没想到,就是这次更新,出现了重大Bug。



安装更新后,有大量用户反馈称,自己的Chrome笔记本笔记本陷入无限重启状态,只能恢复出厂设置然后再重新更新,但数据会全部丢失。


明明输入的开机密码是对的,但就是一直提示“无法验证您的密码”,进入不了系统。


一旦重启笔记本,就将陷入无法登陆的死循环,反复重启的状态。



还有部分用户的Chrome OS在重新启动后,会自动下载更新并切换到新版本。


因此,重启设备的用户会突然被锁在外面,无法正常使用设备。



那么,究竟是什么引起的这次Bug的出现呢?


一位Reddit网友从谷歌官网源码中发现,该问题是由一个极其低级的错误引发的。


简单来说,就只是因谷歌程序员少输了一个字符“&”。


原本正确的代码应该是:


if (key_data_.has_value() && !key_data_->label().empty()) {


结果程序员写成了


if (key_data_.has_value() & !key_data_->label().empty()) {


而这串代码是保存用户加密密钥的部分,所以,这个错误直接导致系统无法将存储的密钥与输入的密钥进行比较。



此事传出后,许多网友评论称,“谷歌没有进行代码测试吗?”


“谷歌的测试团队这两个月是在休假吗?”



“谷歌程序员太自信了?”



有一些网友也从中找到了自信。


“我感觉我也能进谷歌了。”



还有网友庆幸自己没有及时更新系统的习惯:“这就是我讨厌强制更新的原因。一般像我这样经验丰富的IT专业人士选择更新时,通常是在一大群人都更新了并且没有报告任何问题之后。”



其实,Chrome OS共有三个测试渠道:“金丝雀”渠道、“开发”渠道和“beta测试”渠道,代码变更应经过这三个渠道的审查,版本发布之间进行数周的测试。


所以,这个Bug的出现也属实有些匪夷所思!


不过,在接到反馈后,谷歌也迅速发布了解决办法,删除了91.0.4472.165版本,并将Chromebook的系统版本退回至91.0.4472.147。


虽然这个版本也不是太安全,但起码用户可以登入电脑了。



另外,谷歌也在7月20日的声明中说已经确定了问题所在,并发布新版本91.0.4472.167以解决该问题,只要Chromebook系统更新至此新版本,用户就可以顺利登入电脑进行正常操作。


受糟糕更新版影响的用户可以等待设备再次更新,或者“强力清洗”设备(即擦除所有本地数据),以便能够正常登录。



说起来,不只是谷歌,国内外的各大科技巨头,实际上或多或少都出现过一些“匪夷所思”的Bug事件。


比如,Gab公司经验丰富的CTO曾将代码中“reject”和“filter”拆分,导致一些知名人士(比如特朗普)在内的、70GB大小的信息数据被泄露,公司还被黑客敲诈了50万美元。



比如,苹果的iOS 14.7出现Bug,导致App Store无法更新应用,用户设备电池健康降低。


比如,王者荣耀test邮件事件,该Bug可令玩家免费领取到多个英雄,皮肤,以及英雄碎片,皮肤碎片。


更不用说,每次更新都会带来一系列Bug的Windows 10。



这些层出不穷的例子都表明,再缜密的程序,归根结底都是由一个个活生生的程序员亲自码出来的,出错也是在所难免。


作为程序员,你曾经又写出过什么Bug呢?欢迎大家在评论区交流。


-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

点击👆卡片,关注后回复【面试题】即可获取

在看点这里好文分享给更多人↓↓

浏览 19
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报