Bug 9488

Summary: RAID-related failures should not block startup process
Product: Sisyphus Reporter: evseev <evseev>
Component: startupAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: blocker    
Priority: P2 CC: glebfm, gns, hiddenman, lav, ldv, legion, mike, stalker, vsu, vvk
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 9286    
Attachments:
Description Flags
Мой вариант заплатки на rc.sysinit none

Description evseev 2006-04-28 18:07:18 MSD
/etc/rc.d/rc.sysinit проверяет код возврата /etc/rc.d/scripts/raidstart и
вываливается в шелл, если вернулся не ноль. Однако есть ситуации, когда такое
поведение неверно:

1) если RAID на компьютере отсутствует вообще,
2) если один из дисков в RAID-разделе сбоит, но раздел всё равно сохраняет
работоспособность,
3) если сбойный раздел не нужен для загрузки системы (например, /home - т.е. всё
, кроме /, /usr и /var)

Во всех этих случаях mdadm вернёт ненулевое значение, но загрузка всё равно была
бы успешной. К сожалению, коды возврата mdadm не упорядочены, поэтому их можно
проверять только на "ноль-не ноль".

Возможно, вместо нынешнего безусловного запуска шелла было бы уместнее выводить
ругань и минуту ждать нажатия Enter. Если в течение минуты Enter нажат -
запускать шелл, если не нажат - продолжать загрузку. В качестве дополнительных
изысков можно ввести в /etc/sysconfig/init и/или /proc/cmdline параметр
onraiderror=ignore|stop (если ни того, ни другого нет - считается ask).
Steps to Reproduce:
1. apt-get install mdadm
2. reboot
Actual Results:  
Dropping to shell :-(

Expected Results:  
Normal startup! :-)
Comment 1 evseev 2006-04-28 18:40:33 MSD
Created attachment 1471 [details]
Мой вариант заплатки на rc.sysinit
Comment 2 Dmitry V. Levin 2006-04-30 01:26:04 MSD
С идеей согласен.

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

А как лучше назвать новый параметр в /etc/sysconfig/init?
Comment 3 evseev 2006-04-30 06:27:23 MSD
> Патч в неизменном виде, к сожалению, не заработает,
> поскольку я не знаю что такое sulogin_reboot,
Это я хотел вынести sulogin и reboot в отдельную функцию,
потом перехотел, но забыл убрать её вызов.
Патч, к сожалению, заработает даже в неизменном виде,
поскольку вызов стоит уже после 'reboot -f'.

> да и английский в прежнем тексте был получше.
На совершенный английский я и не претендую,
поскольку изучил его самоучкой уже после школы.

> А как лучше назвать новый параметр в /etc/sysconfig/init?
Также, как и в /proc/cmdline: onraiderror.
Я счёл, что /proc/cmdline будет вполне достаточно.
С /etc/sysconfig/init проверки слишком усложняются,
хотя, если электорат возжаждет, то выдадим.
Comment 4 Nick S. Grechukh 2006-06-11 08:11:52 MSD
ну почините, ну пожалуйста
Comment 5 Sergey Vlasov 2006-08-07 19:17:07 MSD
Кстати, "recent breakage of starting degraded arrays", якобы исправленное в
mdadm 2.5.3, не имеет к этому отношения?

http://permalink.gmane.org/gmane.linux.raid/12762
Comment 6 Dmitry V. Levin 2006-08-11 03:12:58 MSD
Патч приложен с косметическими изменениями в 0.9.8.5.