10月21日,杭州云栖大会-技术&可持续发展论坛,注册有礼 了解详情
写点什么

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

2021 年 7 月 25 日

谷歌开发团队犯低级错误?因一个字符拼写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 年 7 月 25 日 16:382367
用户头像
罗燕珊 InfoQ中文站编辑

发布了 153 篇内容, 共 53.8 次阅读, 收获喜欢 258 次。

关注

评论 2 条评论

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

如何用时序数据库 CTSDB 与 TARS 结合,解决海量监控数据难题

腾源会

数据库 大数据 开源 TARS CTSDB

Vite + Vue3 + OpenLayers 同步两个地图基础操作

学习委员

Web 地图 vite openlayers 前端可视化

云信小课堂 | 聊天室内容审核很头疼?3步解决!

网易云信

人工智能 AI 视频

Micro Focus 发布年度安全运营报告,洞察后疫情时代企业安全运营新趋势

Geek_459987

工业互联网的两种极端想法和两点反思

iNeuOS工业互联网操作系统

物联网 智能制造 iNeuOS工业互联网 工业大数据

支持 10 亿日流量的基础设施:当 Apahce APISIX 遇上腾讯

腾源会

腾讯云 开源 APISIX OTeam

自建开源Cassandra与GaussDB(for Cassandra)性能对比测试报告

华为云数据库小助手

性能分析 GaussDB 华为云数据库 GaussDB(for Cassandra) 开源Cassandra

这份阿里P9架构师推荐的Spring领域巅峰之作彻底颠覆了我对Spring的认知。

程序员知识圈

Java 程序员 架构 面试 编程语言

从技术到商业:2021 DEMO CHINA创新中国峰会正式开启

创业邦

直播报名 | 超低延时直播架构解析

百度开发者中心

最佳实践 方法论 活动 直播

Alibaba竟流出全套的Java核心技术手册,看过的人都说好!

Java 白

Java 程序员 架构 面试 计算机

如何做竞品分析?

石云升

产品经理 产品思维 9月日更 产品分析

redis--数据库实现

en

首个RISC-V计算机芯片现身欧洲处理器计划

WorkPlus Lite

这本Alibaba“绝密”SpringBoot精髓到底厉害在哪里

Java 白

Java 程序员 面试 springboot 计算机

大众汽车迟到的软件优先思维

SOA开发者

Nebula Graph 源码解读系列 | Vol.01 Nebula Graph Overview

Nebula Graph

我的9年开源之路:395 Patch、20+Feature,背后只有努力与热爱

腾源会

腾讯云 开源 虚拟化 Linux内核 kvm

【重磅】Apache InLong(incubating) 发布 0.10.0 版本

腾源会

Apache 开源 InLong

如何高效掌控K8s资源变化?K8s Informer实现机制浅析

腾源会

云原生 k8s

DPDK分析学习之全网唯一的DPDK教学课程丨虚拟化高性能专家之路

Linux服务器开发

网络协议 虚拟化 Linux服务器开发 DPDK 高性能网络

中小企业自媒体为何难做:定位不准期望值过高

石头IT视角

T-BOX专业分享

SOA开发者

太牛了!从没见过有哪位大佬能把Java并发编程知识点写得这么清晰明了!

程序员知识圈

Java 程序员 架构 面试 编程语言

2021下半年全新京东商城亿级并发架构设计,不学习你就OUT了!!

Java 白

Java 程序员 面试 计算机 京东

被 Docker 日志坑惨了

AlwaysBeta

Docker 容器 运维

丧心病狂!阿里内部Spring Cloud高薪笔记流失,GitHub夜获星百万

Java 白

Java 程序员 面试 计算机 阿里巴巴‘

阿里独家!GitHub上点击量超百万的「操作系统和计算机网络」PDF震撼开源

Java 白

Java 程序员 面试 计算机 Alibaba

Webrtc ICE 框架

糖米唐爹

WebRTC p2p ICE

残疾人大学生就业难?「低代码」应用,让就业更简单!

优秀

低代码

2年Java外包经验程序员的逆袭之路,4面阿里成功斩获P6offer。分享面经!

程序员知识圈

Java 程序员 架构 面试 编程语言

数据cool谈(第1期)数据库寻路,开源有态度

数据cool谈(第1期)数据库寻路,开源有态度

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