В Linux найдены ошибки, повреждающие разделы жесткого диска и файловые системы

ПО Свободное ПО Открытое ПО
, Текст: Сергей Попсулин
Ошибка в ядре Linux стала причиной серьезного повреждения данных на компьютерах некоторых пользователей. Еще один баг приводил к зависанию процессов на серверах с чипами Intel.

В версии ядра Linux 4.0.2 найдена ошибка, приводящая к повреждениям данных на жестком диске или твердотельном накопителе. О ее наличии свидетельствуют появившиеся за последние несколько дней сообщения на различных интернет-ресурсах.

«Прошлой ночью я установил обновление Linux 4.0.2, после чего начало происходить нечто сверхъестественное. В конечном счете мой компьютер перестал загружаться», — рассказал пользователь zozi56 на интернет-форуме bbs.archlinux.org.

По словам пользователя, после того как его компьютер начал вести себя странно, он проверил раздел накопителя на наличие ошибок и выявил поврежденные библиотеки. После этого он восстановил библиотеки и продолжил работу, однако странности начали происходить с домашней папкой — zozi56 заметил, что ее размер уменьшился. После повторной проверки раздела выяснилось, что пропали некоторые текстовые файлы, которые он создал в период последней сессии, а также некоторые временные файлы.

После перезагрузки пользователь вновь обнаружил поврежденные библиотеки, которые он вновь восстановил. Затем его компьютер работал исправно несколько часов подряд, после чего zozi56 обнаружил, что одно из изображений, которое он только что создал и записал на диск, оказалось поврежденным. Он добавил, что использует утилиту mdadm для создания программных RAID-массивов, а также пользуется Windows, установленной на этот же накопитель, без каких-либо проблем.

Участники беседы признались, что столкнулись с таким же странным поведением компьютеров разных марок — беспричинным повреждением некоторых случайных файлов. «У меня точно такая же проблема: работа ядра 4.0.2 приводит к повреждению файловой системы, тогда как 4.0.1 работает идеально. Я тоже использую утилиту mdadm. Мне пришлось переустановить систему. Я решил не обновляться до 4.0.2, пока проблема не будет устранена», — рассказал участник интернет-дискуссии ccrisan.

В версии ядра Linux 4.0.3 ошибка была исправлена. «Версия 4.0.3 избавлена от критической ошибки, ведущей к серьезным потерям данных в разделах с файловой системой ext4, — сообщил на сайте bugs.debian.org один из разработчиков ядра Джош Триплет (Josh Triplett). — Я полагаю, что именно эта ошибка только что привела к серьезному повреждению файловой системы на моем сервере».

Помимо этого, интернет-пользователи сообщили еще об одной неприятной ошибке в Linux, ставшей причиной зависания процессов на серверах с чипами Intel на архитектуре Haswell, в том числе облачных серверов Amazon. Ошибка содержалась в реализации вызова futex_wait и присутствовала в ядре с версии 3.14 до 3.18, то есть в период с января по октябрь 2014 г., перекочевав в ряд дистрибутивов, в том числе некоторые версии Red Hat Enterprise Linux, CentOS 6.6 и Scientific Linux 6.6. Данный баг стал причиной замешательства среди программистов, которые думали, что программы зависают вследствие ошибок в коде, не подозревая, что причина кроется в ядре операционной системы.