NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

发布了 424 篇内容, 共 246.3 次阅读, 收获喜欢 757 次。

关注

评论 2 条评论

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

Android 查看签名

沃德

程序员 7月月更

提前解锁 2 大直播主题!今天手把手教你如何完成软件包集成?|第 29-30 期

OpenAnolis小助手

云原生 直播 龙蜥大讲堂 SIG 双周会 CSI 与 open-local

“整洁架构”和商家前端的重构之路

得物技术

架构 前端 重构

beegfs高可用模式探讨

姚华

HPC beegfs 并行文件系统

案例 ①|主机安全建设:3个层级,11大能力的最佳实践

青藤云安全

网络安全 主机安全 网络安全、攻防演练

BP神经网络(算法整体思路及原理+手写公式推导)

秃头小苏

7月月更

三步就能在OpenHarmony中实现车牌识别

OpenHarmony开发者

OpenHarmony

如何提高网站权重

源字节1号

微信小程序 软件开发 网站开发

SAP Fiori 应用索引大全工具和 SAP Fiori Tools 的使用介绍

Jerry Wang

SAP Fiori SAP UI5 ui5 7月月更

视频化全链路智能上云?一文详解什么是阿里云视频云「智能媒体生产」

阿里云视频云

人工智能 媒体 音视频

关于静态类型、动态类型、id、instancetype

NewBoy

前端 移动端 iOS 知识体系 7月月更

Java多线程案例之阻塞队列

未见花闻

7月月更

A5000 vGPU显示模式切换

姚华

显卡、gpu

python变量:引用和可变性

AIWeker

Python python小知识 7月月更

CRMEB 商城系统如何助力营销?

CRMEB

用Java写学生登陆认证系统

魏铁锤

C#/VB.NET 给PDF文档添加文本/图像水印

在下毛毛雨

C# .net PDF 添加水印

Scala 基础 (五):面向对象(上篇)

百思不得小赵

scala 大数据 oop 7月月更

OAI 5G NR+USRP B210安装搭建

柒号华仔

5G 7月月更

spark调优(二):UDF减少JOIN和判断

怀瑾握瑜的嘉与嘉

spark 7月月更

ORACLE进阶(四)表连接讲解

No Silver Bullet

oracle 7月月更 表连接

redisson bug分析

wgy

Java redis redisson

终于可以一行代码也不用改了!ShardingSphere 原生驱动问世

SphereEx

数据库 ShardingSphere ShardingSphere-JDBC

LSF 集群全面监控!浅析 HPC 基于龙蜥操作系统的迁移替代解决方案

OpenAnolis小助手

开源 解决方案 龙蜥操作系统 常青藤开源科技 HPCinsights

渲大师携手向日葵,远控赋能云渲染及GPU算力服务

Finovy Cloud

渲染 GPU算力

【鲲鹏BoostKit】OminiRuntime ——高效统一的大数据分析Runtime底座

Geek_2d6073

Spring Cloud源码分析之Eureka篇第三章:EnableDiscoveryClient与EnableEurekaClient的区别(Edgware版本)

程序员欣宸

Java SpringCloud 7月月更

《数字经济全景白皮书》保险数字化篇 重磅发布

易观分析

保险数字化

AddressSanitizer 技术初体验

焱融科技

内存泄露 存储 文件存储 分布式文件存储

设计你的安全架构OKR

I

安全架构师 安全架构 企业安全 安全治理

代理和反向代理

沃德

程序员 7月月更

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