【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

谷歌开发团队犯低级错误?因一个字符拼写 Bug,Chromebook 变砖了

  • 2021-07-25
  • 本文字数:1390 字

    阅读完需:约 5 分钟

谷歌开发团队犯低级错误?因一个字符拼写Bug,Chromebook变砖了

近日,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 后面没有大括号导致的语义变化,==、= 和 === 的数量差别,++ 或-- 的位置,甚至 ; 的有无在某些编程语言中带来的语义差别。即使通过反复检查也可能有遗漏,而自己检查自己的代码会更难发现这些缺陷,这和自己不容易发现自己的错别字是一个道理。


参考链接:

https://www.androidpolice.com/2021/07/20/a-new-chrome-os-91-update-is-breaking-chromebooks-like-a-bull-in-a-china-shop/

2021-07-25 16:383131
用户头像
罗燕珊 InfoQ中文站编辑

发布了 426 篇内容, 共 248.2 次阅读, 收获喜欢 760 次。

关注

评论 2 条评论

发布
用户头像
这难道不杀个程序员祭天
2021-08-04 15:01
回复
用户头像
怎么做code review的
2021-07-26 15:58
回复
没有更多了
发现更多内容

TLS协议分析 (七) 安全性分析

OpenIM

JS完美收官之——作用域

法医

9月日更

谈 C++17 里的 FlyWeight 模式

hedzr

c++ 设计模式 Design Patterns 享元模式 flyweight

FontAwesome图标大全

入门小站

工具

架构实战营 1 期模块 7 作业——业务异地多活架构

tt

架构实战营

女科学家流失之殇

脑极体

Java设计模式如何优雅的使用本地缓存?

张音乐

Java 缓存 9月日更

模块七课后作业

NewBranSTONE

#架构实战营

去中心化身份务实

CECBC

Kubernetes踩坑问题集

玏佾

Kubernetes k8s k8s文档

网络攻防学习笔记 Day129

穿过生命散发芬芳

日志分析 9月日更

13. AlphaGO带给人类的启示到底是什么

数据与智能

人工智能

pyhanlp 添加自定义词典(qbit)

qbit

Python nlp 分词

职场浅谈三则

姬翔

9月日更

阿里P8整理出SQL笔记:收获不止SOL优化抓住SQL的本质,带你领略SQL的世界!

Java MySQL 架构 面试 架构师

阿里内部流传的JDK源码剖析手册!GitHub已获上千万的访问量

Java 编程 架构 jdk 面试

linux之ssh命令

入门小站

Linux

国家发改委:利用区块链等新技术开展绿色电力交易试点

CECBC

架构学习模块二

George

Navicat Premium 查询 x 列时不显示

玄兴梦影

MySQL navicat select

网红郭老师遭全平台账号封禁,违背公序良俗的网红该被封杀

石头IT视角

区块链赋能供应链金融风险管控探析

CECBC

模块七作业:王者荣耀商城异地多活架构设计

Felix

我在 InfoQ 创作的思路规划

baiyutang

写作技巧 9月日更

这个 TCP 问题你得懂:Cannot assign requested address

AlwaysBeta

Linux TCP TCP/IP Linux内核 TCP协议

【架构设计模块七】:王者荣耀商城异地多活架构设计

Ryoma

【布道API】关于 API 分页

devpoint

API REST API 9月日更

推荐三个实用的 Go 开发工具

AlwaysBeta

Go 语言

如何让项目准时上线?

石云升

项目管理 管理 引航计划 内容合集 9月日更

【网络安全】记一次挖洞的日常

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

Redis集群docker部署

非晓为骁

redis Docker redis集群

谷歌开发团队犯低级错误?因一个字符拼写Bug,Chromebook变砖了_语言 & 开发_Kent Duke_InfoQ精选文章