Linux之父警告全球程序員:我剛發(fā)布的5.12內(nèi)核有bug
本文經(jīng)AI新媒體量子位(公眾號(hào)ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
在美國(guó)的大雪天氣影響下,Linux之父Linus Torvalds的家經(jīng)歷了6天斷電,但他還是2月底趕出了5.12-rc1內(nèi)核。

然而,事情不到一周卻發(fā)生了轉(zhuǎn)折。
Linus本周給Linux內(nèi)核郵件組的發(fā)去了一封警告郵件:我剛發(fā)布的5.12-rc1內(nèi)核你們千萬(wàn)別用!
你們中的某些人可能已經(jīng)注意到,在我的公共git樹(shù)中,“ v5.12-rc1”標(biāo)記已經(jīng)神奇地重命名為“ v5.12-rc1-dontuse”。
Linus之所以用“不要使用”(dontuse)來(lái)標(biāo)記這些代碼,是因?yàn)榭赡芷茐慕粨Q文件(swapfile)的處理。具體來(lái)說(shuō),更新后的代碼會(huì)丟失指向交換文件開(kāi)頭的適當(dāng)偏移量,可能導(dǎo)致災(zāi)難性的后果。

當(dāng)發(fā)生此錯(cuò)誤時(shí),系統(tǒng)不僅會(huì)覆蓋現(xiàn)有文件中的數(shù)據(jù),還會(huì)覆蓋大量的元數(shù)據(jù),這些元數(shù)據(jù)的損壞可能會(huì)導(dǎo)致整個(gè)文件系統(tǒng)無(wú)法安裝和使用。
如果你根本不使用交換文件,那么這個(gè)問(wèn)題不會(huì)造成任何傷害。因?yàn)樵S多Linux發(fā)行版仍然默認(rèn)交換分區(qū),而不是交換文件。
但是,應(yīng)用最廣的發(fā)行版Ubuntu默認(rèn)使用交換文件。如果你是Ubuntu或以Ubuntu為基礎(chǔ)的發(fā)行版(如Mint)用戶(hù),那么這個(gè)錯(cuò)誤可能會(huì)破壞你整個(gè)根文件系統(tǒng)。
昨天,Linus已經(jīng)發(fā)布了5.12-rc2,修復(fù)了這個(gè)錯(cuò)誤。
不過(guò),對(duì)Linux用戶(hù)來(lái)說(shuō),還是不要輕易使用未經(jīng)充分測(cè)試的rc版代碼。這類(lèi)早期發(fā)布的內(nèi)核版本可能會(huì)帶來(lái)非常嚴(yán)重的bug,并不適合部署到生產(chǎn)中。