Linux 之父:不要使用 Linux 5.12-rc1 内核!新版本正在测试将提前推出
Linux 之父 Linus Torvalds 在 Linux 5.12-rc1 发布几天后突然对开发人员发出警告,不要在他的公共 git 树中使用 5.12-rc1 内核。
因为交换文件错误导致的文件系统损坏的问题,Linus Torvalds 对使用 5.12-rc1 的开发者发出了警告,并将 Git 标记重命名为“ v5.12-rc1-dontuse”。他还表示,将提前发布 5.12-rc2。
Linux 5.12-rc1 存在“微妙”的错误,可能破坏整个根文件系统
在发给 Linux Kernel Mailing List 的一封邮件中,Linus Torvalds 说:“你们中的某些人可能已经注意到,在我的公共 git 树中,‘v5.12-rc1’标记已经重命名为‘v5.12-rc1-dontuse’。它仍然是同一对象,内部仍显示‘v5.12-rc1’,并且仍由我签名,但是标记的用户可见名称已更改。”
他解释称,在此合并窗口中,他们进行了无害的代码清理和简化,没有引起任何危险,但是其中存在一个微妙的错误:5.12-rc1 破坏了 swapfile 的处理。具体来说,更新后的代码会丢失指向交换文件开头的适当偏移量。用 Linus Torvalds 自己的话说,“交换仍然会发生,但是它发生在文件系统的错误部分,最终会带来明显的灾难性后果。”
Linus Torvalds 提到,这不是一个非常明显的错误,它甚至没有出现在正常的测试。如果不使用交换,则此问题不会造成任何损害。而且,如果使用交换分区而不是交换文件也不会受到影响。
不过,不幸的是,Ubuntu(也许是地球上部署最广泛的 Linux 发行版)默认情况下已经安装交换文件已有四年多了。如果您是 Ubuntu 用户(或 Ubuntu 发行版的发行人,例如 Mint),则可能有交换文件,并且此错误可能会破坏您的整个根文件系统。
Linux 5.12-rc2 版本可能提前推出
然而,Torvalds 的警告意义远远超出了个人用户对发布候选内核可能做的事。更重要的是,内核开发人员不能将他们自己的工作建立在这个版本之上,这样可能会带来一个非常严重的 bug。
Linus Torvalds 想确保没有人使用 5.12-rc1 标记开始新的主题分支。他提到,一些开发人员倾向于把所有的开发工作都放到这个合并窗口中,并将其作为下一个版本的基础。Linus Torvalds 还说:“这也导致了我自己对 Linux 用户的一个相当频繁的警告: 不要盲目地使用那些还没有经过充分测试的代码。Linux 内核候选版本通常都非常可靠,但是这么做可能会带来非常严重的后果。如果等待这些代码首先进入生产环境,可能会避免许多不好的后果。”
在一条新的补充消息中 Linus Torvalds 表示,他正在考虑发布一个加速的 Linux 5.12-rc2 版本。他说:“我已经在做一些有趣的 Linux 5.12 性能测试,这些测试很快就会推出。”
参考链接:
https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.12-rc2-Likely-Soon
https://arstechnica.com/gadgets/2021/03/psa-linux-folks-stay-away-from-the-5-12-rc1-kernel/