После вчерашнего выпуска Linux 7.3-rc3 в код было включено важное исправление, устраняющее скрытую ошибку, приводившую к потере данных в пользовательском пространстве, которая существовала в ядре на протяжении последних трёх лет.
В начале месяца была обнародована информация о данной ошибке, а также опубликована небольшая программа на языке C, позволяющая ее воспроизвести. Если ядро работает с включенной поддержкой «transparent hugepages» (THP) и с ограничениями через cgroup, то записи, выполняемые после вызова MADV_FREE, могут быть полностью потеряны.
Эта ошибка не является гипотетической, она проявилась в производственной среде. Для её проявления требуется определённое сочетание использования «transparent hugepages» (THP), вызова MADV_FREE и высокой нагрузки на механизм освобождения памяти. Этот патч исправляет ошибку и сводится к изменению всего одной строки кода.
Патч был включён в рамках слияния x86/urgent на этой неделе. Он также помечен для обратного портирования в текущие поддерживаемые стабильные версии ядра. Ошибка появилась ещё в июле 2023 года и присутствовала в выпусках ядра, начиная с Linux 6.6.
>>> Источник