谷歌程序員少輸一個“&”,差點讓全球Chrome筆記本變磚
沒有測試就上線?
曉查 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
代碼只是少了一個字符,后果竟如此可怕。
上周,一些使用Chrome OS筆記本的用戶發(fā)現(xiàn),一旦重啟筆記本,就將陷入了無法登錄的死循環(huán)。

明明輸入的開機密碼是對的,但就是一直提示“無法驗證您的密碼”,進不了系統(tǒng)。更嚴重的情況是筆記本將反復重啟。
一臺好好的筆記本怎么突然就“變磚”了呢?
原來都是Chrome OS一次悄悄自動更新惹的禍。
由于ChromeOS是開源的,一位Reddit網友仔細系統(tǒng)更新的代碼,發(fā)現(xiàn)其中的低級錯誤令人哭笑不得。

少一個“&”惹的禍
這位網友仔細對比兩份代碼后發(fā)現(xiàn),這個“驚天大bug”背后竟然只是谷歌程序員少輸了一個字符“&”。
原本正確的代碼應該是:
if (keydata.hasvalue() && !key_data->label().empty())
而這位程序員卻這句if語句寫成了
if (keydata.hasvalue() & !key_data->label().empty())
“&&”和“&”兩個運算符雖然看起來只差一點點,但二者作用真是天壤之別。
前者是對兩個變量求“與”(AND),而后者是對這兩個值按位求與。
這樣就導致了條件語句兩邊變量每一位都會被求與,即使has_value()為真,返回結果也不一定就是真。
而這串代碼是Chrome OS中保存用戶加密密鑰的部分,由于這個錯誤,系統(tǒng)無法驗證將存儲的密鑰與輸入密碼進行比較,就出現(xiàn)了尷尬的一幕。
接到用戶的反饋后,谷歌迅速發(fā)布了91.0.4472.167更新來解決該問題。
如果你的Chrome筆記本只是無法進入當前賬戶,那么可以先嘗試安裝最新更新,而不會丟失文件。
如果你的筆記本無線重啟,就只能回復出廠設置然后再接收更新了,數(shù)據也會全部丟失。
沒測試就發(fā)布,著實離譜
堂堂互聯(lián)網大廠竟犯如此低級錯誤,這令不少Chromebook用戶感到憤怒:
谷歌的測試團隊這兩個月是休假了嗎?

谷歌沒有代碼測試的嗎?為什么會在沒有測試的情況下把代碼發(fā)布到生產環(huán)境。

Chrome OS過去一直“小錯不斷”,所以有些用戶已經學得精明了:
我已經學會了等更新發(fā)布一段時間后再升級。

真是沒想到,代碼少一個字符竟有這么大的破壞力。好在Chrome OS系統(tǒng)更新是分批進行,波及面也不算太廣。
看到這個谷歌程序員的bug,你有沒有想起自己犯過哪些低級錯誤呢?(比如把等于號“==”寫成了賦值號“=”)
參考鏈接:
[1]https://9to5google.com/2021/07/21/psa-chrome-os-update-locking-out-accounts/
[2]https://arstechnica.com/gadgets/2021/07/google-pushed-a-one-character-typo-to-production-bricking-chrome-os-devices/?comments=1
[3]https://www.reddit.com/r/chromeos/comments/onlcus/update_it_seems_google_has_pulled_the_165_stable/h5vev76/
- 腦機接口走向現(xiàn)實,11張PPT看懂中國腦機接口產業(yè)現(xiàn)狀|量子位智庫2021-08-10
- 張朝陽開課手推E=mc2,李永樂現(xiàn)場狂做筆記2022-03-11
- 阿里數(shù)學競賽可以報名了!獎金增加到400萬元,題目面向大眾公開征集2022-03-14
- 英偉達遭黑客最后通牒:今天必須開源GPU驅動,否則公布1TB機密數(shù)據2022-03-05



