在Chromium的臭蟲討論區有多位開發者回報,Android上的Chrome更新到79(79.0.3945.79)版本的時候,本機儲存(Localstorage)與WebSQL都被意外地清空,應用程式將遺失舊有資料。這對於許多Chrome上的應用程式造成很大的影響,使用者在收到Chrome 79更新之後,造成使用者資料被移除,不少開發者要求官方立刻停止推送有問題的Chrome 79,否則越多使用者更新,則會有越多的使用者資料遺失。

另有一位使用者補充說明,所有的資料都仍然保留在檔案系統中,只是在Chrome 79無法被找到。重現這個問題的方法,只要在Chrome 78以下版本透過本機儲存增加資料,而後更新到Chrome 79,啟動Chrome 79並透過本機儲存提取資料,便會發現資料遺失。

Chrome開發團隊則回應,新版本已經推送給50%的使用者,而且即便修復這個問題,仍會造成破壞性的影響,雖然Chrome可以增加程式碼來檢查被遺忘的檔案並且進行移動,但這個動作勢必會覆蓋新位置的資料,而且將本地儲存資料庫合併也不是一個可行的解法,因為同一網站已經設置了兩個副本的資料,合併不可避免地會導致資料遺失。

因此開發團隊在討論串中,提供兩個方案讓開發者選擇,第一是移除Chrome 79之後的資料,並且回復到Chrome 78的狀態,另一個選擇則是移除Chrome 78以前的資料,從Chrome 79從頭開始。絕大多數開發者都要求第一個選擇,但要留存舊資料又有兩條路,繼續Chrome 79的資料搬遷,但是將舊檔案移動到新的位置,或是透過將要搬遷的檔案移動到舊位置恢復更改。

目前更新已經釋出,最終的決定是將儲存的資料搬遷回原始的位置,官方解釋,造成本機儲存和資料庫遺失的原因,是因為這些檔案沒有跟著儲存根路徑變更而搬移。目前有問題的Android Chrome 79已經對一半的用戶釋出,部分用戶已經重新創建了資料,而更新後的Chrome 79會將新資料儲存在預設的子目錄中,並且重新使用Chrome 78的版本,官方提到,這樣的修補方式,對於大部分應用程式來說沒問題,但對少部分案例仍然需要新資料,可以到預設的子目錄取用。對於之前尚未更新Chrome 79的用戶,不會有任何影響。

這是個嚴重的臭蟲,被標記成P0等級,不乏擁有百萬使用者的應用程式受到影響,有部分開發者提到,這個事件的發生代表Chrome的QA失靈,由於多數應用程式都使用資料儲存,開發團隊應該要對重要的本機儲存和WebSQL進行測試。

熱門新聞

Advertisement