在2月20日時,Rust套件註冊表crates.io用戶回報,上傳Rust套件Crate十分鐘後,仍然在索引中無法使用,Rust官方表示,這是crates.io網頁應用程式的臭蟲,但意外地被GitHub服務中斷所觸發。受影響的三個Crate,分別是kaze、wasmer-runtime-core以及wasmer-win-exception-handler,無法正確地在crates.io中發布新版本,目前Rust官方已經修復該臭蟲,受影響Crate也在重新上傳後,已經可以使用。

官方提到,這個臭蟲在部分情況,使用者上傳新的提交到索引GitHub儲存庫中,即便推送本身失敗,但是系統仍然會回傳推送成功訊息,而錯誤的狀態使工作排程器誤以為上傳成功,將該工作從佇列中被移除,產生資料遺失的狀況。而觸發臭蟲的原因,正是因為GitHub服務發生中斷,所產生意料之外的回應所導致。

至於為何意外事件發生時,負責人員沒有收到通知,官方解釋,因為監控系統沒有辦法發現這個錯誤,雖然系統會監控工作執行失敗的狀況,但因為在這個案例中,工作被標記為正確,而使監控系統沒有發揮應有的功能。官方表示,他們會實施定期檢查,以確保索引和資料庫間有正確同步。

幸好在事件發生時,有兩名團隊成員仍在線上工作,因此能馬上解決問題,否則這個臭蟲將會對更多Crate造成影響。在事件調查過程中,Rust官方發現目前系統的日誌紀錄,並無法讓他們正確地診斷出問題,包括在提交推送到索引或是執行背景工作時,沒有任何訊息被紀錄,而且發布Crate的API呼叫,日誌中沒有紀錄Crate名稱,因此官方會強化日誌紀錄功能,以便日後能更快地確定意外事件發生原因。


Advertisement

更多 iThome相關內容