谷歌搞砸了验证密码的条件语句。随后部署了修复程序。
ChromeOS的编程错误,这个错误发生在我们当中最优秀的程序员身上
谷歌声称,它已修复了ChromeOS中害得用户无法正常使用设备的一个严重bug。谷歌的公告显示,本周短暂亮相的ChromeOS版本91.0..使用户无法登录到他们的设备,设备实际上沦为废砖。
ChromeOS在重新启动后自动下载更新并切换到新版本,因此重启设备的用户会突然被锁在外面,无法正常使用设备。面对这个糟糕的更新版,可靠的建议是不要重启。
公告称,现已发布新版本91.0..以解决该问题,但可能需要“几天”才会到所有人的手里。受糟糕更新版影响的用户可以等待设备再次更新,或者“强力清洗”设备(即擦除所有本地数据),以便能够正常登录。ChromeOS主要基于云,所以如果您未执行高级的操作(比如运行Linux应用程序),这个解决方法带来的不便比在其他操作系统上要少。不过,一些用户抱怨数据丢失。
ChromeOS是开源的,所以我们可以得到更多关于修复的细节,这归功于AndroidPolice网站搜索用户elitist_ferret的Reddit评论帖子。问题显然归结为拼错了一个字符。谷歌搞砸了ChromeOS的CryptohomeVaultKeyset中的一个条件语句,这是操作系统中保存用户加密密钥的部分。这一行应该是“if(key_data_.has_value()!key_data_-label().empty()){”,但糟糕的更新版使用了单单一个,因而搞砸了条件语句的后半部分,而不是使用(“AND”运算符的C++版本
听起来是由于这个错误,ChromeOS从未对照所存储的密钥正确检查用户密码,因此即使是正确的密码也会返回一条消息:“抱歉,无法验证您的密码。”
ChromeOS的全部卖点在于它很可靠且牢不可破,像这样的拙劣更新版无疑损害了这款操作系统的形象。目前尚不清楚像这样一个如此明显的严重问题是如何进入稳定版本发布渠道的。ChromeOS共有三个测试渠道:“金丝雀”渠道、“开发”渠道和“beta测试”渠道,代码变更应经过这三个渠道的审查,版本发布之间进行数周的测试。不知何故,这个bug成了这整个过程的漏网之鱼。这个问题也似乎是单元测试或自动化测试本该发现的问题——无法登录实在太过明显。
这个错误标志着本月推出的第二个有缺陷的ChromeOS更新版。7月初的更新版使一些型号的CPU使用率飙升,因而运行速度最终如蜗牛爬行。