Разделы

ПО Свободное ПО Софт Техника

Разработчики 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.

Один небольшой баг способен сломать все ядро Linux

Старовойтов отправил проблемный патч к ядру, а когда ему указали на то, к чему привело его внедрение, он написал: «Трехкратная регрессия? Вау. Спасибо на наводку. Я смотрю на патч и ничего не вижу. Подключу других специалистов».

Помощь прямиком из Европы

С течением времени выяснилось, что код Старовойтова ломает не только 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.

Геннадий Ефремов



37-я международная выставка информационных и коммуникационных технологий Связь-2025 37-я международная выставка информационных и коммуникационных технологий Связь-2025

erid: 2W5zFHRYEHv

Рекламодатель: АКЦИОНЕРНОЕ ОБЩЕСТВО «ЭКСПОЦЕНТР»

ИНН/ОГРН: 7718033809/1027700167153