Bug 25132 - При работе в virtualbox портятся файлы
Summary: При работе в virtualbox портятся файлы
Status: CLOSED WORKSFORME
Alias: None
Product: Branch p5
Classification: Distributions
Component: cross-component (show other bugs)
Version: unspecified
Hardware: x86_64 Linux
: P3 critical
Assignee: Evgeny Sinelnikov
QA Contact: QA p5
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-02-22 15:27 MSK by Vadim Zelenin
Modified: 2011-02-24 08:38 MSK (History)
3 users (show)

See Also:


Attachments
Тестовый файл ones.bz2 (1 ГБ символов '1'), при его распаковке очень просто и наглядно повторяется ошибка (783 bytes, application/x-bzip)
2011-02-22 15:41 MSK, Vadim Zelenin
no flags Details
Ожидаемый hexdump файла ones.bz2 (90 bytes, text/x-hex)
2011-02-22 15:46 MSK, Vadim Zelenin
no flags Details
hexdump наихудшего (из 10 попыток) вариантов распаковки ones.bz2 (39.64 KB, text/plain)
2011-02-22 15:49 MSK, Vadim Zelenin
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vadim Zelenin 2011-02-22 15:27:32 MSK
В altinux 64 bit (в /etc/altlinux-release написано "ALT Linux 5.0.0 Desktop KDE  (Lycoris Radiata)",
uname -a выводит "Linux stale.localdomain 2.6.32-std-def-alt20.M50P.1 #1 SMP Mon Sep 6 10:49:36 UTC 2010 x86_64 GNU/Linux) установлен штатный virtualbox (virtualbox-3.2.4-alt2.M50P.1). В virtualbox-е установлен altlinux 32 bit (в /etc/altlinux-release написано "ALT Linux 5.0.0 Desktop KDE  (Lycoris Radiata)",
uname -a выводит "Linux alt1.localdomain 2.6.32-std-def-alt20.M50P.1 #1 SMP Mon Sep 6 11:11:43 UTC 2010 i686 GNU/Linux").

Обнаружено, что при работе в гостевой OS при записи больших файлов (например, при распаковке) некоторые файлы оказываются повреждёнными. Кроме того обнаружено, что повреждение носит характер заполнения блоков содержимого файла нулями. К сожалению такое искажение данных происходит не всегда, и как мне кажется оно коррелирует с загруженностью физического компьютера.

Обсуждение на форуме: http://forum.altlinux.org/index.php/topic,10015.0.html
Comment 1 Vadim Zelenin 2011-02-22 15:41:17 MSK
Created attachment 4810 [details]
Тестовый файл ones.bz2 (1 ГБ символов '1'), при его распаковке очень просто и наглядно повторяется ошибка
Comment 2 Vadim Zelenin 2011-02-22 15:46:47 MSK
Created attachment 4811 [details]
Ожидаемый hexdump файла ones.bz2
Comment 3 Vadim Zelenin 2011-02-22 15:49:15 MSK
Created attachment 4812 [details]
hexdump наихудшего (из 10 попыток) вариантов распаковки ones.bz2
Comment 4 Aleksey Borisenkov 2011-02-23 01:29:07 MSK
Перевесим-ка пока на p5, так как все пакеты оттуда.

А нет ли, случайно, возможности проверить воспроизводимость на другой машине с таким же дистрибутивом? У меня, кажется, не осталось ни одной, где бы был p5. Постараюсь поискать на недельке, но что-то подобных ужасов из прошлого не припоминается.
Comment 5 Vadim Zelenin 2011-02-23 22:45:05 MSK
(В ответ на комментарий №4)
> Перевесим-ка пока на p5, так как все пакеты оттуда.

Вам виднее, я поместил в 5.0 просто потому что в p5 не мог выбрать virtualbox.

> А нет ли, случайно, возможности проверить воспроизводимость на другой машине с
> таким же дистрибутивом? 

Успешно воспроизвёл проблему - установил на другую машину, гостевой altlinux вообще не запустился. Пришлось грузиться с образа systemrescuecd, но ошибка повторилась. Единственное "самовольство" при установке - я памятуя о проблеме загрузки 5.0 с ext4 сделал /boot на ext3 и / на ext4, /home отдельно не делал.
Далее всё по прописи - обновил пакеты, обновил ядро, установил virtualbox и его  ядерные модули.
Comment 6 Aleksey Borisenkov 2011-02-23 23:30:16 MSK
А файловая система, на которой лежит виртуальный диск, случаем, не ext4?
Comment 7 Vadim Zelenin 2011-02-23 23:50:52 MSK
(В ответ на комментарий №6)
> А файловая система, на которой лежит виртуальный диск, случаем, не ext4?

Совершенно верно, ext4
Comment 8 Aleksey Borisenkov 2011-02-23 23:53:25 MSK
Тогда есть подозрение, что это известная проблема:
http://forums.virtualbox.org/viewtopic.php?f=7&t=31255&start=15

Кэширование операций ввода/вывода у виртуального контроллера выключено? Если да, то помогает ли включение?
Comment 9 Vadim Zelenin 2011-02-24 00:39:20 MSK
> Кэширование операций ввода/вывода у виртуального контроллера выключено? Если
> да, то помогает ли включение?

На первый взгляд включение кеширования помогло. По крайней мере 10 циклов распаковки-проверки прошли успешно.
Comment 10 Evgeny Sinelnikov 2011-02-24 00:39:24 MSK
(В ответ на комментарий №8)
> Тогда есть подозрение, что это известная проблема:
> http://forums.virtualbox.org/viewtopic.php?f=7&t=31255&start=15
> 
> Кэширование операций ввода/вывода у виртуального контроллера выключено? Если
> да, то помогает ли включение?

Да, в новой версии VitualBox выдаётся соответствующее предупреждение:

Работа виртуальной машины может привести к возникновению ошибки, описываемой ниже. Вы можете игнорировать это сообщение, но рекомендуется выполнить соответствующие действия для предотвращения возникновения описанной ошибки.
The host I/O cache for at least one controller is disabled and the medium '/home/sin/VirtualBox VMs/altx/altx.vdi' for this VM is located on an ext4 partition. There is a known Linux kernel bug which can lead to the corruption of the virtual disk image under these conditions.
Either enable the host I/O cache permanently in the VM settings or put the disk image and the snapshot folder onto a different file system.
The host I/O cache will now be enabled for this medium.

Подбробнее об этом указано здесь:
http://www.virtualbox.org/manual/ch05.html

Для ext4 нужно включить кеширование операций ввода-вывода в настройках контроллера машины.

Будем считать, что проблема в этом. Если проявится, откроете снова.
Comment 11 Aleksey Borisenkov 2011-02-24 00:54:37 MSK
Евгений, мне кажется правильным решением было бы обновить VB в p5, хотя бы уже потому, что там есть это предупреждение. Да и само предупреждение там, возможно, просто перестраховка, хотя на 3.2.12 я воспроизвести багу ещё пока не пытался. Но это уж вам с Андреем решать...
Comment 12 Evgeny Sinelnikov 2011-02-24 03:19:37 MSK
А я не против обновить. Наверное, можно обойтись копированием из 5.1, но механизм обновления в p5, для меня, совершенно не прозрачен. То есть я не понимаю как это правильно делать. В 5.1 3.2.12 уже давно собран. Сегодня в сизиф уехал. 4.0.4.
Comment 13 Lenar Shakirov 2011-02-24 08:38:28 MSK
(В ответ на комментарий №12)
> А я не против обновить. Наверное, можно обойтись копированием из 5.1, но
> механизм обновления в p5, для меня, совершенно не прозрачен. То есть я не
> понимаю как это правильно делать. В 5.1 3.2.12 уже давно собран. Сегодня в
> сизиф уехал. 4.0.4.

Просто отправляете задание в p5, оно отвалится из-за ACL, но cas@ его протестирует и сделает approve, если его все устроит :)