近日,Google 在短暂上线了一版 Chrome OS 更新后又迅速将其撤掉,原因是某行代码里少打的一个 & 字符导致系统无法解密登录信息,大量用户也因此被锁在了系统之外。虽然官方已推出修复更新,但不少人都遭受了损失。
Chrome OS 又出大 Bug
自从 Google 推出了 Chrome OS 91,就因为各种 Bug 没少折腾。据 Android Police 报道,继此前有不少用户宣称设备在升级到 91.0.4472.147 后导致 CPU 占用率太高、Google 取消更新并让所有人回滚到 91.0.4472.114 却引发用户无法安装 Linux 的问题之后,近日 91.0.4772.165 的到来让用户陷入了更糟糕的境地。
ChromeOS subreddit的一位版主最近透露这个新的 Chrome OS 更新存在严重 Bug,该更新将用户锁在他们的 Chromebook 之外,用户根本没法正常使用。
一位 Reddit 用户报告说,他们的两台 Chromebook 登录界面不再接受他们的密码——有一台笔记本电脑陷入开机循环,而另一部 Asus Chromebook C436,即使采用 Powerwash(Chromebook 上存储的所有本地用户数据都可以通过重设为原始出厂状态清除)措施也无法挽救,最终他们不得不动用 U 盘来让系统恢复到可用的状态。
总而言之,这个有问题的 91.0.4772.165 版本更新导致大量用户重要文件丢失,很多用户对此感到愤怒。
我们无法确定这个错误是如何通过了三个开发者版本并进入稳定版本的。这次整个事件凸显了 Google 对其 Chrome OS 版本缺乏质量控制的问题。
修复
在破坏了一堆 Chromebook 之后,谷歌最终撤回了 91.0.4472.165 版本,将 Chrome 设备回滚到 91.0.4472.147。谷歌事后澄清说,该团队已经确定了问题,并将于 7 月 21 日发布修复程序。而对于担心丢失数据的受影响用户来说,若能等到当天设备自动更新,就能够再次登录而无需进行 Powerwash。
所以到底发生了什么事?多亏了 Reddit 上一位眼尖的用户,我们才知道一个非常简单的拼写错误似乎就是导致如此多用户无法使用 Chromebook 的原因。通过查看两版更新代码文件中的差异,我们可以看到是由于 Google 忘记在条件语句中添加第二个“&”,导致 Chrome OS 无法解密登录信息(登录时需要)。
C++中的“AND”运算符正确写法是“&&”,但出现 Bug 的版本中只写了单个“&”。
对于用户而言,虽然定期创建重要文件的备份是有必要的,但 Chromebook 也不应该以这种方式“强迫”用户删除本地文件,这对于 Google 来说是个应该反思的问题。目前,Google 已推出修复程序,Chrome OS 91.0.4772.167现在可以在更新的服务器上使用。使用新版本,Chrome OS 能够解密用户帐户和进行登录,从而允许访问重要文件。
即使是今天的 Google,也无法避免像错字这种低级 Bug 的出现。京东技术专家胡蜂曾总结道,人人都会犯粗心大意的错误,因为这就是 “人” 这个系统的普遍固有缺陷(Bug)之一。所以,作为人的程序员一定会犯一些非常低级的、因为粗心大意而导致的 Bug。这就好比写文章、写书都会有错别字,即使经历过三审三校后正式出版的书籍,都无法完全避免错别字的存在。而程序中也有这类 “错别字” 类型的低级错误,比如:条件 if 后面没有大括号导致的语义变化,==、= 和 === 的数量差别,++ 或-- 的位置,甚至 ; 的有无在某些编程语言中带来的语义差别。即使通过反复检查也可能有遗漏,而自己检查自己的代码会更难发现这些缺陷,这和自己不容易发现自己的错别字是一个道理。
参考链接:
评论 2 条评论