Не обрабатывается ошибка отсутствия сквоша с заданным именем при загрузке iso образа по сети целиком. Для воспроизведения проблемы задаём method загрузки http, указываем неверный stagename, грузим нераспакованный iso. После загрузки iso, bootchain завершается критической ошибкой и ничего более не происходит. Ожидаемое поведение: bootchain выдаёт критическую ошибку и происходит перезагрузка.
(Ответ для Антон Мидюков на комментарий #0) > Не обрабатывается ошибка отсутствия сквоша с заданным именем при загрузке > iso образа по сети целиком. Не совсем так, она обрабатывается. Предлагаю прицепить chaind.log с bc_debug. > Ожидаемое поведение: bootchain выдаёт критическую ошибку и происходит > перезагрузка. В коде огромное число ошибок, которые приводят к такому же результату. В принципе, я согласен, что интереснее тут было бы увидеть диалог. Лишь в нескольких местах проверяется доступность диалогов и они выводятся -- только там, где такие же диалоги выдавал пропагатор. А, например, в init-bottom диалогов уже не было. Тут напрашивается некий системный условно-диалоговый вызов fatal().
(Ответ для Leonid Krivoshein на комментарий #1) > (Ответ для Антон Мидюков на комментарий #0) > > Не обрабатывается ошибка отсутствия сквоша с заданным именем при загрузке > > iso образа по сети целиком. > Не совсем так, она обрабатывается. Предлагаю прицепить chaind.log с bc_debug. > Оно обрабатывается, вот только ошибки в логе не видать, если загрузиться без bc_debug. С bc_debug выдаёт в лог сообщение: squashfs: second stage file not found: 'live' cahind: [0] Handler failed (rc=1, try=1) chaind: RUN: touch /.initrd/bootchain/passed/squashfs chaind: remainig steps after breaking loop: squashfs,liveboot,rootfs chaind: daemon terminated incorrectly (rc=1) Хотелось бы увидеть это на /dev/console. > > Ожидаемое поведение: bootchain выдаёт критическую ошибку и происходит > > перезагрузка. > В коде огромное число ошибок, которые приводят к такому же результату. В > принципе, я согласен, что интереснее тут было бы увидеть диалог. Лишь в > нескольких местах проверяется доступность диалогов и они выводятся -- только > там, где такие же диалоги выдавал пропагатор. А, например, в init-bottom > диалогов уже не было. Тут напрашивается некий системный условно-диалоговый > вызов fatal(). Напрашивается текстовая ошибка с предложением перезагрузить или запустить rdshell.
Сейчас ситуация стала лучше, когда bootchain аварийно завершился, не найдя сквош, make-initrd сразу выбрасывает в rdshell, так как ждать нечего.
(Ответ для Антон Мидюков на комментарий #3) > Сейчас ситуация стала лучше, когда bootchain аварийно завершился, не найдя > сквош, make-initrd сразу выбрасывает в rdshell, так как ждать нечего. А никакого диалога при этом не возникло? Каково ожидаемое поведение?
(Ответ для Leonid Krivoshein на комментарий #4) > (Ответ для Антон Мидюков на комментарий #3) > > Сейчас ситуация стала лучше, когда bootchain аварийно завершился, не найдя > > сквош, make-initrd сразу выбрасывает в rdshell, так как ждать нечего. > А никакого диалога при этом не возникло? Каково ожидаемое поведение? Не возникло, так как "некий системный условно-диалоговый вызов fatal()" не реализован в bootchain. Было бы хорошо, если бы такой был. Но и текущее поведение с rdshell определённо лучше, чем было. Теперь проблема не столь критична.
make-initrd-bootchain-0.1.5-alt15 -> sisyphus: Fri May 05 2023 Leonid Krivoshein <klark@altlinux> 0.1.5-alt15 - interactive: introduce new IM_fatal() API call (ALT #44108) - switch to localdev boot method in any case - don't turn on lowmem mandatory for 'live' stage