Bug 52670

Summary: altboot 0.1.5-alt27: `reserve' operand expected (error token is "* 1024 + 900000")
Product: Sisyphus Reporter: Arseny Maslennikov <arseny>
Component: make-initrd-bootchain-altbootAssignee: Leonid Krivoshein <klark>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: antohami, klark
Version: unstable   
Hardware: x86_64   
OS: Linux   

Description Arseny Maslennikov 2025-01-11 18:29:36 MSK
initramfs взята из regular-rescue от 20250108, это latest на сегодняшний день. Туда, видимо, попала уже 0.1.5-alt27.

Указываю в kernel cmdline:

  altboot_download=method=url;url=http://${hostname}/${path}/rr-20250108-x86_64.iso

altboot не может скачать файл, прикидывается, что докачал мгновенно (TUI: 0% -> 100% за доли секунды). Дальнейшие шаги ничего не могут сделать, машина вечно ждёт root от bootchain.

Судя по логу /var/log/chaind.log, в функции check_avail_space вылетает ошибка навроде:

  bash: * 1024 + 900000: syntax error: operand expected (error token is "* 1024 + 900000")

Там мог высветиться номер строки, но я не запомнил. Точный $szkb тоже не запомнил, только старшую цифру.
По контексту и цитате ясно, что это подстановка $reserve длины 0, видимо, в строке с local sizemin=.

Глянув в /lib/bootchain/download, вижу, что reserve — это bootarg.
Указываю взамен в kernel cmdline:

  altboot_download=method=url;url=http://${hostname}/${path}/rr-20250108-x86_64.iso;reserve=0

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

Прошу поправить — раньше передавать reserve явно не требовалось, да и просто такого bootarg не было :).
Comment 1 Arseny Maslennikov 2025-01-11 18:44:31 MSK
(In reply to Arseny Maslennikov from comment #0)
> Прошу поправить — раньше передавать reserve явно не требовалось, да и просто
> такого bootarg не было :).

Дефолт 512M мне будет в самый раз. :)
Comment 2 Leonid Krivoshein 2025-01-11 19:07:15 MSK
Спасибо! Действительно регрессия. Причём, открывющая глаза на проблему того, что в altboot'овских "шагах" потенциально могут быть и другие неинициализированные переменные, если "шаг" задействован не в режиме совместимости с пропагатором, т.е. когда это всё используется в режиме bootchain или pipeline.

Подготовил таск #369258, надо будет сначала проверить.
Comment 3 Repository Robot 2025-01-13 19:40:05 MSK
make-initrd-bootchain-0.1.5-alt28 -> sisyphus:

 Sat Jan 11 2025 Leonid Krivoshein <klark@altlinux> 0.1.5-alt28
 - fixed uninitialized value of variable (ALT #52670)
Comment 4 Arseny Maslennikov 2025-01-15 13:46:51 MSK
Опробовал сегодня образ от 20250115, куда попала версия 0.1.5-alt28. Проблема устранена. Ещё раз благодарю! :)

Также уберу regular-rescue из заглавия баги.