Linux之父警告全球程式設計師:剛發的內核有bug 你們千萬別用

在美國的大雪天氣影響下,Linux之父Linus Torvalds的家經歷了6天斷電,但他還是2月底趕出了5.12-rc1內核。

Linux之父警告全球程式設計師:我剛發布的5.12內核有bug 你們千萬別用

然而,事情不到一周卻發生了轉折。Linus本周給Linux內核郵件組的發去了一封警告郵件:

我剛發布的5.12-rc1內核你們千萬別用!你們中的某些人可能已經注意到,在我的公共git樹中,「 v5.12-rc1」標記已經神奇地重命名為「 v5.12-rc1-dontuse」。

Linus之所以用「不要使用」(dontuse)來標記這些程式碼,是因為可能破壞交換文件(swapfile)的處理。具體來說,更新後的程式碼會丟失指向交換文件開頭的適當偏移量,可能導致災難性的後果。

Linux之父警告全球程式設計師:我剛發布的5.12內核有bug 你們千萬別用

當發生此錯誤時,系統不僅會覆蓋現有文件中的數據,還會覆蓋大量的元數據,這些元數據的損壞可能會導致整個文件系統無法安裝和使用。如果你根本不使用交換文件,那麼這個問題不會造成任何傷害。

因為許多Linux發行版仍然默認交換分區,而不是交換文件。但是,應用最廣的發行版Ubuntu默認使用交換文件。如果你是Ubuntu或以Ubuntu為基礎的發行版(如Mint)用戶,那麼這個錯誤可能會破壞你整個根文件系統。昨天,Linus已經發布了5.12-rc2,修復了這個錯誤。

Linux之父警告全球程式設計師:我剛發布的5.12內核有bug 你們千萬別用

不過,對Linux用戶來說,還是不要輕易使用未經充分測試的rc版程式碼。這類早期發布的內核版本可能會帶來非常嚴重的bug,並不適合部署到生產中。