上周 Linux Kernel 几经波折终于发布了 5.12-rc1 版本,不过就在发布后的第二天,Linus 又立马向内核邮件列表发出了一封警告邮件,告诉大家不要使用最新的 5.12-rc1 内核(尤其是使用 swap 文件来运行的用户),并要求维护者不要从 5.12-rc1 进行分支,以免将问题带到未来的版本中。
邮件发出之前,Linus 就已将公共 git 树中的 "v5.12-rc1" tag 重命名为 "v5.12-rc1-dontuse",以提醒用户不要使用。根据 Linus 的解释,5.12-rc1 版本内核严重破坏了对交换文件 (swapfile) 的处理,会导致文件系统被随机交换数据覆盖,此外还会导致大段的元数据被覆盖。元数据的损坏可能会导致整个文件系统无法挂载和使用。
导致此问题的原因是交换文件的读/写偏移(swapfile read/write offset)处理失当,更新后的 v5.12-rc1 代码会丢失指向交换文件开头的适当偏移量,虽然交换仍会进行,但出现在了文件系统不该交换的地方,并因此酿成灾难性的后果。
定位了问题后,内核开发者迅速进行了修复,隔天 Linus 就发布了修复此问题的 Linux Kernel 5.12-rc2。
目前已可以放心使用 v5.12-rc2。
猜你喜欢:暂无回复。