Bug 44107 - Включается rdshell по тайм-ауту
Summary: Включается rdshell по тайм-ауту
Status: ASSIGNED
Alias: None
Product: Sisyphus
Classification: Development
Component: make-initrd-bootchain (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Leonid Krivoshein
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-10-21 13:32 MSK by Антон Мидюков
Modified: 2022-10-24 14:37 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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 проверку сделать, чтобы в лог написало. Только так...