Bug 44107

Summary: Включается rdshell по тайм-ауту
Product: Sisyphus Reporter: Антон Мидюков <antohami>
Component: make-initrd-bootchainAssignee: Leonid Krivoshein <klark>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: antohami, klark
Version: unstable   
Hardware: all   
OS: Linux   

Description Антон Мидюков 2022-10-21 13:32:11 MSK
При загрузке по сети время загрузки может превысить 1,5 минуты. В результате запускается rdshell. Приходится выходить из rdshell, чтобы продолжить загрузку.
Нужно заблокировать запуск rdshell, либо выходить из него после успешного завершения работы bootchain.
Comment 1 Leonid Krivoshein 2022-10-23 02:41:08 MSK
Таймаут для того и задаётся, чтобы если он превышен, выпадали в rdshell, этим управляет make-initrd, а как раз bootchain/altboot с /dev/console не работают. Если таймаута недостаточно, его можно увеличить. Значение по умолчанию 180 секунд. Как мы говорили, таймер отключается при активации диалогов и включается обратно при деактивации altboot. Из этого следует, что если 1) мы видим диалоги, 2) в /proc/cmdline нет параметра rdshell и 3) возникает указанное, то ошибка действительно есть и надо разбираться, на чьей стороне...
Comment 2 Антон Мидюков 2022-10-24 09:15:51 MSK
(Ответ для Leonid Krivoshein на комментарий #1)
> Таймаут для того и задаётся, чтобы если он превышен, выпадали в rdshell,
> этим управляет make-initrd, а как раз bootchain/altboot с /dev/console не
> работают. Если таймаута недостаточно, его можно увеличить. Значение по
> умолчанию 180 секунд. Как мы говорили, таймер отключается при активации
> диалогов и включается обратно при деактивации altboot. Из этого следует, что
> если 1) мы видим диалоги, 2) в /proc/cmdline нет параметра rdshell и 3)
> возникает указанное, то ошибка действительно есть и надо разбираться, на
> чьей стороне...

Вопрос, а как можно посмотреть наличие каталога /.initrd/rootdelay/pause, наличие которого является признаком паузы rootdelay, если не включать rdshell? 

Проблема есть. Когда появляется диалог настройки скачивания образа или сквоша, то достаточно в нём задержаться на несколько минут, после чего, как только bootchain завершит работу, появится rdshell. Нажимаешь ctrl+d и загрузка успешно продолжается.
Comment 3 Leonid Krivoshein 2022-10-24 13:55:32 MSK
(Ответ для Антон Мидюков на комментарий #2)
> Когда появляется диалог настройки скачивания образа или
> сквоша, то достаточно в нём задержаться на несколько минут, после чего, как
> только bootchain завершит работу, появится rdshell. Нажимаешь ctrl+d и
> загрузка успешно продолжается.
Вот теперь понятно, что происходит.

Шаги bootchain есть интерактивные и не интерактивные. Как только bootchain переключился на передний план, так сразу отключается отсчёт таймера make-initrd. Но это обычно не происходит сразу -- есть определённый вместе с тобой таймаут примерно в 8 секунд либо при появлении первого диалога ввода. И как только bootchain завершает работу и выходит в make-initrd, проверка таймера активируется снова, а к моменту долгой сетевой загрузки тут обнаруживается превышение таймаута в 180 секунд.

Так что в bootchain нет ошибки и в make-initrd тоже, так задумано. Мы не знаем на самом деле, что make-initrd будет дальше делать с разделом, найденным пошаговым способом. Возможно там сработает переключение какой-то в следующий режим загрузки и продолжится какая-то обработка. Нужно посоветоваться с legion@. Как мне кажется, для данного случая правильнее всего увеличить общий таймаут.
Comment 4 Антон Мидюков 2022-10-24 14:37:11 MSK
(Ответ для Leonid Krivoshein на комментарий #3)
> (Ответ для Антон Мидюков на комментарий #2)
> > Когда появляется диалог настройки скачивания образа или
> > сквоша, то достаточно в нём задержаться на несколько минут, после чего, как
> > только bootchain завершит работу, появится rdshell. Нажимаешь ctrl+d и
> > загрузка успешно продолжается.
> Вот теперь понятно, что происходит.
> 
> Шаги bootchain есть интерактивные и не интерактивные. Как только bootchain
> переключился на передний план, так сразу отключается отсчёт таймера
> make-initrd. Но это обычно не происходит сразу -- есть определённый вместе с
> тобой таймаут примерно в 8 секунд либо при появлении первого диалога ввода.

При bc_debug происходит сразу. Я проверял и с ним.

> И как только bootchain завершает работу и выходит в make-initrd, проверка
> таймера активируется снова, а к моменту долгой сетевой загрузки тут
> обнаруживается превышение таймаута в 180 секунд.

Ну не отключался он, вот только непонятно, как это проверить, чтобы доказать. Надо в самом bootchain проверку сделать, чтобы в лог написало. Только так...
Comment 5 Антон Мидюков 2023-05-03 13:17:30 MSK
Проблема актулаьн(Ответ для Leonid Krivoshein на комментарий #3)
> (Ответ для Антон Мидюков на комментарий #2)
> > Когда появляется диалог настройки скачивания образа или
> > сквоша, то достаточно в нём задержаться на несколько минут, после чего, как
> > только bootchain завершит работу, появится rdshell. Нажимаешь ctrl+d и
> > загрузка успешно продолжается.
> Вот теперь понятно, что происходит.
> 
> Шаги bootchain есть интерактивные и не интерактивные. Как только bootchain
> переключился на передний план, так сразу отключается отсчёт таймера
> make-initrd. Но это обычно не происходит сразу -- есть определённый вместе с
> тобой таймаут примерно в 8 секунд либо при появлении первого диалога ввода.
> И как только bootchain завершает работу и выходит в make-initrd, проверка
> таймера активируется снова, а к моменту долгой сетевой загрузки тут
> обнаруживается превышение таймаута в 180 секунд.
> 

Да. Нужно отключать тайм-аут на время работы bootchain. make-initrd после того, как bootchain закончил работу, теперь сразу проверяет наличие init. Если его нет, даёт rdshell. Поэтому тайм-аут теперь можно спокойно останавливать на время работы bootchain.
Comment 6 Repository Robot 2023-05-08 19:46:13 MSK
make-initrd-bootchain-0.1.5-alt16 -> sisyphus:

 Mon May 08 2023 Leonid Krivoshein <klark@altlinux> 0.1.5-alt16
 - altboot: fixed timeout event on slow image loading (ALT #44107)