Появившаяся в ядре Linux 3.6.2 ошибка способна привести к повреждению данных в ФС Ext4
Теодор Цо (Theodore Ts'o) опубликовал в списке рассылки разработчиков ядра Linux патч с устранением серьёзной ошибки в реализации файловой системы Ext4, которая при определённых условиях может привести к повреждению данных. Проблема вызвана внесением изменения в процессе подготовки версии 2.6.2, затрагивающего инфраструктуру журналирования jbd2 (Journaling block device). Ошибка проявляется в версиях ядра Linux 3.6.2, 3.6.3 и 3.5.7. Исправление пока доступно только в виде патча.Причину ошибки удалось выявить только после длительного анализа внесённых изменений, так как источник проблемы было трудно отследить из-за непредсказуемого характера проявления ошибки - проблема проявлялась только на системах в которых ФС начинается с нулевого блока, после двух перезагрузок с достаточно коротким интервалом.
В итоге было выяснено, что проблема приводит к некорректному состоянию журнала при размонтировании ФС вслед за монтированием, из-за того, что лог изменений не успевает до конца записаться на диск. Если имело место единичное проявление проблемы, то драйвер Ext4 мог произвести восстановление журнала. Но если ситуация повторялась несколько раз подряд, то данные новой сессии монтирования успевали записаться до того как были записаны данные прошлой сессии, что приводило к некорректному состоянию данных в ФС.
© OpenNet