Линус Торвальдс признал, что в последний релиз Linux утекло немного «buggy crap»

Релиз ядра Linux под номером 4.8 состоялся только в начале этой недели, однако в нём уже была обнаружена серьёзная ошибка. Это вызвало нешуточное недовольство у Линуса Торвальдса.

Второго октября, когда Линус ещё только анонсировал релиз, он говорил, что “в ядро было внесено несколько поразительных исправлений, по сравнению с восьмым релиз-кандидатом”. Однако чуть позже выяснилось, что исправление одной из ошибок (которая присутствовала в ядре со времён 3.15) оказалось хуже, чем сама ошибка, и “способно убить ядро”.

Ошибка заключается в неуместном использовании функции BUG_ON(), которая вместо того, чтобы сообщить об ошибке в ядре, рекурсивно выводит сообщение об ошибке. Не скупясь на выражения (которые мы умышленно не переводим), Торвальдс отчитал Эндрю Мортона, по чьей вине этот участок кода ушёл в продакшен: “…there is NO F*CKING EXCUSE to knowingly kill the kernel. Why the hell was that not a *warning*?”. Линус упомянул, что раньше уже объяснял, как стоит использовать BUG_ON(), и очень не доволен, что спустя 15 лет такие ошибки всё ещё появляются. “Возможно, стоит вообще удалить эту идиотскую концепцию, раз люди так и не поняли, как нормально ей пользоваться. Если вы собираетесь проводить отладку с помощью этой функции, то вам стоит подумать о том, не совершили ли вы ошибку, став программистом” — добавил он.

Эндрю принял критику достойно, и дальше обсуждение продолжилось в направлении поиска более удачных путей исправления ошибки.

Пётр Соковых, транслятор двоичного кода в русский язык