Bug 23077

Summary: Races в районе активации lvm
Product: Sisyphus Reporter: Andrey Rahmatullin <wrar>
Component: make-initrdAssignee: Kirill A. Shutemov <kas>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P3 CC: glebfm, ldv, legion, placeholder, thresh, vsu
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 23135    
Attachments:
Description Flags
Скриншот неудачной загрузки
none
Скриншот неудачной загрузки
none
Образ диска с lvm. none

Description Andrey Rahmatullin 2010-03-04 22:07:46 MSK
Собрал инитрд с включенным lvm. При загрузке вылазит пачка No volume groups found (примерно в то же время, что выводится какой-то мусор про сетевые настройки), потом про каждую (?) группу The link %s should had been created by udev but it was not found. Falling back to direct link creation.
Вроде вылазило ещё и Symbolic link %s not created: file exists, но надо проверить, не пропало ли с новым LVM.

lvm2-2.02.61-alt1
make-initrd-0.2.2-alt1
Comment 1 Alexey Gladkov 2010-03-05 01:08:25 MSK
Кирилл, тебе виднее что с этим делать.
Comment 2 Andrey Rahmatullin 2010-03-06 15:59:23 MSK
Такс.
Всё это дело практически сломало загрузку с LVM root. Налицо race, из-за которого, по всей видимости, далеко не всегда создаётся/находится устройство, на котором корень. За десяток загрузок видно, что количество и содержимое сообщений меняются, и такое ощущение, что одни и те же файлы создаются двумя процессами.
Comment 3 Andrey Rahmatullin 2010-03-06 16:01:09 MSK
Created attachment 4290 [details]
Скриншот неудачной загрузки

Вот, например, один из вариантов. Обращаю внимание на повторные упоминания файлов и на страшный dm-name-
Comment 4 Andrey Rahmatullin 2010-03-06 16:03:04 MSK
Created attachment 4291 [details]
Скриншот неудачной загрузки
Comment 5 Kirill A. Shutemov 2010-03-06 20:47:46 MSK
А можешь попробовать с lvm2-2.02.61-alt2 из моего git.
Comment 6 Andrey Rahmatullin 2010-03-06 21:27:43 MSK
(В ответ на комментарий №5)
> А можешь попробовать с lvm2-2.02.61-alt2 из моего git.
Всмысле из сизифа? С ним и пробовал, после того как на alt1 не загрузилось.
Comment 7 Alexey Gladkov 2010-03-14 14:02:18 MSK
Вот как поддержка lvm сделана в dracut:

http://dracut.git.sourceforge.net/git/gitweb.cgi?p=dracut/dracut;a=tree;f=modules.d/90lvm;h=f5e54ba8dfd201d10957dea1c5aedbfa7b0e611a;hb=16add2aac7ed4526d39132b011300de3c4e17f41

Может наведёт на мысли.
Comment 8 Kirill A. Shutemov 2010-03-15 12:35:52 MSK
2wrar@: можешь проверить то, что у меня в git + lvm2.git-2.02.61-alt3 + udev-150-alt4 ?
Comment 9 Alexey Gladkov 2010-03-25 01:13:03 MSK
Я изменил принцип обработки эвентов от udev. Теперь рейсов быть не должно, но нужно тщательно тестировать. У меня нет lvm.

http://git.altlinux.org/people/legion/packages/make-initrd.git?p=make-initrd.git;a=shortlog;h=refs/heads/udev-events
Comment 10 Andrey Rahmatullin 2010-03-25 10:23:34 MSK
Просто виснет (точнее, перестаёт что-либо делать) в том месте, где раньше пыталось смонтировать корень.
Comment 11 Alexey Gladkov 2010-03-25 10:40:34 MSK
(В ответ на комментарий №10)
> Просто виснет (точнее, перестаёт что-либо делать) в том месте, где раньше
> пыталось смонтировать корень.

Предётся поднимать рут lvm ... у вас случайно нет qemu-образа с такой конфигурацией ?
Comment 12 Andrey Rahmatullin 2010-03-25 10:44:14 MSK
Увы, нету.
Comment 13 Alexey Gladkov 2010-03-25 14:07:56 MSK
(В ответ на комментарий №12)
> Увы, нету.

Тогда ждём пока kas@ появится. Без стенда я допилить этот вид загрузки не смогу.
Comment 14 Kirill A. Shutemov 2010-03-25 14:20:38 MSK
Извиняйте, что пропал. Сегодня-завтра посмотрю.
Comment 15 Alexey Gladkov 2010-03-25 14:23:41 MSK
(В ответ на комментарий №14)
> Извиняйте, что пропал. Сегодня-завтра посмотрю.

Сделай мне образ плз. :)
Comment 16 Kirill A. Shutemov 2010-03-25 14:39:31 MSK
Created attachment 4317 [details]
Образ диска с lvm.

Образ диска с lvm. Вместо /sbin/init лежит ash, который даже не запускается, поскольку я забыл /dev/* подложить ;) Но это не важно. Главное добиться стабильного монтирования root'а.

Я запускал так:
qemu -enable-kvm -kernel /boot/vmlinuz-2.6.34-rc1 -hdd rootfs -append 'root=UUID=0518a50d-467e-447e-af94-de2f9225c4b5 init=/sbin/init vga=0xF07 rootdelay=10' -initrd myinitrd.img

Модифицируйте по своему усмотрению.
Comment 17 Alexey Gladkov 2010-03-25 16:23:02 MSK
(В ответ на комментарий №16)
> Created an attachment (id=4317) [details]
> Образ диска с lvm.

Спасибо. Уже нашёл ошибку. Сегодня вечером будет коммит с исправлением.
Comment 18 Kirill A. Shutemov 2010-03-25 16:27:56 MSK
Кстати, нужно будет подобные образы сделать для всех типичных и не очень конфигураций и положить в git. Что б легче тестировать было.
Comment 19 Alexey Gladkov 2010-03-25 16:39:50 MSK
(В ответ на комментарий №18)
> Кстати, нужно будет подобные образы сделать для всех типичных и не очень
> конфигураций и положить в git. Что б легче тестировать было.

Согласен, но только такие, которые грузятся :)
Comment 20 Alexey Gladkov 2010-03-25 18:08:05 MSK
Запушил исправления в тот же бранч.
Comment 21 Andrey Rahmatullin 2010-03-25 19:38:46 MSK
48c743dcaa8fe22347b249413d12a7442dd49757 ? Не вижу разницы.
Comment 22 Alexey Gladkov 2010-03-25 19:42:47 MSK
(В ответ на комментарий №21)
> 48c743dcaa8fe22347b249413d12a7442dd49757 ? Не вижу разницы.

Ничего не понял.
Comment 23 Andrey Rahmatullin 2010-03-25 19:51:55 MSK
C make-initrd, собранным из указанного коммита, поведение такое же, как в https://bugzilla.altlinux.org/show_bug.cgi?id=23077#c10
Comment 24 Alexey Gladkov 2010-03-25 20:04:17 MSK
(В ответ на комментарий №23)
> C make-initrd, собранным из указанного коммита, поведение такое же, как в

У вас присутствует ли lvm в FEATURES если выполнить make-initrd guess-config ?
Если нет, то пропишите его руками в /etc/initrd.mk.

Инициализируются ли при загрузке диски ?

У меня приложенный rootfs загрузился насколько это возможно. Я пользовался командой:

qemu -enable-kvm -hdd /tmp/rootfs -kernel /tmp/vmlinuz -initrd /tmp/initrd.img -append 'root=UUID=0518a50d-467e-447e-af94-de2f9225c4b5 rootdelay=10'
Comment 25 Andrey Rahmatullin 2010-03-25 22:01:19 MSK
(В ответ на комментарий №24)
> > C make-initrd, собранным из указанного коммита, поведение такое же, как в
> У вас присутствует ли lvm в FEATURES если выполнить make-initrd guess-config ?
> Если нет, то пропишите его руками в /etc/initrd.mk.
Давно прописано.

> Инициализируются ли при загрузке диски ?
Да, если речь о "sda: sda1 sda2 sda3" и проч.
Comment 26 Alexey Gladkov 2010-03-30 15:05:18 MSD
(В ответ на комментарий №25)
> Да, если речь о "sda: sda1 sda2 sda3" и проч.

А как вы указываете root= ?

Для меня ситуация странная ... не может быть чтобы в эмуляторе работало, а у вас нет.
Comment 27 Andrey Rahmatullin 2010-03-30 15:37:42 MSD
(В ответ на комментарий №26)
> А как вы указываете root= ?
root=UUID=9c8473ff-08fe-4f21-bf82-3a3657d83858

> Для меня ситуация странная ... не может быть чтобы в эмуляторе работало, а у
> вас нет.

Какой-нибудь аццки подробный дебаг загрузки initrd можно ведь включить?
Comment 28 Kirill A. Shutemov 2010-03-31 22:15:49 MSD
2 wrar@: можешь посмотреть с фиксами из моего гита (бранч udev-events). у меня загружается.
Comment 29 Andrey Rahmatullin 2010-03-31 22:26:28 MSD
Вот, с a1afbbc1981d0b4ee7f615721cb8cdc474f1474e работает.
Comment 30 Kirill A. Shutemov 2010-03-31 22:32:40 MSD
(In reply to comment #29)
> Вот, с a1afbbc1981d0b4ee7f615721cb8cdc474f1474e работает.

tnx. Лёша, смержишь?
Comment 31 Repository Robot 2010-04-05 08:37:01 MSD
make-initrd-0.3.0-alt1 -> sisyphus:

* Wed Mar 31 2010 Alexey Gladkov <legion@altlinux> 0.3.0-alt1

- Rewrite handling of udev events.
- Fix mounting the root before resume (ALT#23183).
- Fix races in the lvm activation (ALT#23077).