谷歌程序员少输一个“&”,差点让全球Chrome笔记本变砖

晓查发自凹非寺量子位报道|公众号QbitAI
代码只是少了一个字符 , 后果竟如此可怕 。
上周 , 一些使用ChromeOS笔记本的用户发现 , 一旦重启笔记本 , 就将陷入了无法登录的死循环 。
谷歌程序员少输一个“&”,差点让全球Chrome笔记本变砖

明明输入的开机密码是对的 , 但就是一直提示“无法验证您的密码” , 进不了系统 。 更严重的情况是笔记本将反复重启 。
一台好好的笔记本怎么突然就“变砖”了呢?
原来都是ChromeOS一次悄悄自动更新惹的祸 。
由于ChromeOS是开源的 , 一位Reddit网友仔细系统更新的代码 , 发现其中的低级错误令人哭笑不得 。
谷歌程序员少输一个“&”,差点让全球Chrome笔记本变砖

这位网友仔细对比两份代码后发现 , 这个“惊天大bug”背后竟然只是谷歌程序员少输了一个字符“&” 。
原本正确的代码应该是:
if(keydata.hasvalue()&&!key_data->label().empty())而这位程序员却这句if语句写成了
if(keydata.hasvalue()&!key_data->label().empty())“&&”和“&”两个运算符虽然看起来只差一点点 , 但二者作用真是天壤之别 。
前者是对两个变量求“与”(AND) , 而后者是对这两个值按位求与 。
这样就导致了条件语句两边变量每一位都会被求与 , 即使has_value()为真 , 返回结果也不一定就是真 。
而这串代码是ChromeOS中保存用户加密密钥的部分 , 由于这个错误 , 系统无法验证将存储的密钥与输入密码进行比较 , 就出现了尴尬的一幕 。
接到用户的反馈后 , 谷歌迅速发布了91.0.4472.167更新来解决该问题 。
如果你的Chrome笔记本只是无法进入当前账户 , 那么可以先尝试安装最新更新 , 而不会丢失文件 。
如果你的笔记本无线重启 , 就只能回复出厂设置然后再接收更新了 , 数据也会全部丢失 。
堂堂互联网大厂竟犯如此低级错误 , 这令不少Chromebook用户感到愤怒:
谷歌的测试团队这两个月是休假了吗?
谷歌程序员少输一个“&”,差点让全球Chrome笔记本变砖

谷歌没有代码测试的吗?为什么会在没有测试的情况下把代码发布到生产环境 。
谷歌程序员少输一个“&”,差点让全球Chrome笔记本变砖

ChromeOS过去一直“小错不断” , 所以有些用户已经学得精明了:
我已经学会了等更新发布一段时间后再升级 。
谷歌程序员少输一个“&”,差点让全球Chrome笔记本变砖

真是没想到 , 代码少一个字符竟有这么大的破坏力 。 好在ChromeOS系统更新是分批进行 , 波及面也不算太广 。
看到这个谷歌程序员的bug , 你有没有想起自己犯过哪些低级错误呢?(比如把等于号“==”写成了赋值号“=”)
【谷歌程序员少输一个“&”,差点让全球Chrome笔记本变砖】参考链接:[1][2][3]