Разработчики Linux написали кривой код и едва не убили Nginx и PostgreSQL. Откатить изменения удалось в последний момент
В код ядра Linux версии 6.15 закрался баг, который втрое снижает производительность Nginx, PostgreSQL и других разработок. Проблему нашли случайно, и устранять ее пришлось в спешке, чтобы успеть до релиза новой сборки.
Баг один, проблем – масса
Ядро Linux версии 6.15, в настоящее время находящееся в разработке, оказалось «заражено» ошибкой, радикально снижающей производительность самых разных технологий. Как пишет портал Phoronix, из-за этого бага втрое падает скорость работы как минимум ПО для веб-серверов Nginx и системы управления базами данных PostgreSQL.
Linux 6.15 пока не вышел. К моменту выхода материала была доступна лишь третья тестовая сборка (RC3), датированная 20 апреля 2025 г. Публикация стабильной версии Linux 6.15 ожидается в мае или начале июня 2025 г.
По началу во время разработки ядра закравшийся в него «замедлятор» никак себя не проявил. Обнаружить его удалось лишь опытным путем – он показал себя во всей красе как раз при тестировании работы Nginx на новой версии ядра.
Источником проблемы оказался патч за авторством разработчика ядра Алексея Старовойтова. Его национальность не установлена, а его электронная почта зарегистрирована в Google Mail.
Старовойтов отправил проблемный патч к ядру, а когда ему указали на то, к чему привело его внедрение, он написал: «Трехкратная регрессия? Вау. Спасибо на наводку. Я смотрю на патч и ничего не вижу. Подключу других специалистов».
Помощь прямиком из Европы
С течением времени выяснилось, что код Старовойтова ломает не только Nginx. Под удар попали самые разные технологии и разработке, в том числе системы управления базами данных ClickHouse и PostgreSQL. Наряду с ними пострадало инженерное ПО OpenFOAM, а также утилита Memcached для кэширования данных в оперативной памяти на основе хеш-таблицы.
Починить все удалось инженеру немецкой компании SUSE Властимилу Бабке (Vlastimil Babka), пишет Phoronix. Он за одну ночь провел анализ подсистемы slab и заодно проанализировал влияние нового компилятора GCC, где и нашел подсказку для решения проблемы. В конечном итоге он подготовил апдейт, нивелирующий негативное влияние патча Старовойтова на работу Nginx и пр.
Патч Властимила был протестирован несколькими разработчиками. Они подтвердили, что предложенный им код действительно работает – проблема с регрессией производительности PostgreSQL, ClickHouse и пр. была устранена.
Помощь самого главного
Алексей Старовойтов выяснил также, что регрессию производительности благодаря его патчу затронула еще и Netperf – ПО для тестирования производительности сетей и сетевых приложений. С этой проблемой и просьбой о помощи с ее решением он обратился напрямую к Линусу Торвальдсу (Linus Torvalds), создателю Linux.
К моменту выхода материала не было известно, отреагировал ли Торвальдс на просьбу Старовойтова. Однако ранее тот крайне негативно высказывался о россиянах, участвующих в разработке Linux – он называл их «кучкой русских троллей».
Также Торвальдс уже успел раскритиковать еще не вышедшую сборку Linux 6.15. Как сообщал CNews, в конце марта 2025 г. создатель Linux заявил, что часть кода Linux, относящаяся к технологии тестирования hdrtest – настоящий мусор. Он сказал, что этот код «должен умереть». Он также использовал нелитературные выражения в адрес самой технологии hdrtest, заявив, что она лишь захламляет ядро. Hdrtest нужна для тестирования корректной работы драйверов для интегрированной графики процессоров Intel.