Linus Torvalds 在10月3日发布了Linux 4.8的正式版,在正式发布前他接受了 Andrew Morton 发来的补丁,补丁的目的是修复一个自3.15以来就存在的bug,然而它却导致了比原bug更严重的问题。 他
在内核邮件列表上对此道歉,称他对 Andrew的补丁本有很高的期望,认为他肯定对递交的补丁进行了充分的测试,但在代码中加入随机的
BUG_ON()意味着测试不够。他在2002年曾经强烈批评过使用BUG_ON()调试bug的方法,但同样的事情却在将近15年后再次发生了。 邮件部分内容如下: I'm
really sorry I applied that last series from Andrew just before doing
the 4.8 release, because they cause problems, and now it is in 4.8 (and
that buggy crap is marked for stable too).
In particular, I just
got this kernel BUG at ./include/linux/swap.h:276 and the end result was
a dead kernel.The bug that commit 22f2ac51b6d64 ("mm: workingset: fix
crash in shadow node shrinker caused by replace_page_cache_page()")
purports to have fixed has apparently been there since 3.15, but the fix
is clearly worse than the bug it tried to fix, since that original
bug has never killed my machine!
I should have reacted to the
damn added BUG_ON() lines. I suspect I will have to finally just remove
the idiotic BUG_ON() concept once and for all, because there is NO
F*CKING EXCUSE to knowingly kill the kernel. 更多请查看完整版。 Andrew辩解称没有多少人会触发这个问题,但他的辩解再次遭到了Linus的批评,称他口中在少数人相当于几乎所有人。 via:Solidot |