Bug 49219

Summary: Ошибка при обработке списка сервисов
Product: Sisyphus Reporter: serpiph <serpiph>
Component: make-initrdAssignee: Alexey Gladkov <legion>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: blocker    
Priority: P5 CC: arseny, glebfm, ldv, legion, max.gordeef, placeholder
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 46625    

Description serpiph 2024-01-29 07:31:27 MSK
После обновления make-initrd стал падать при запуске своего скрипта sort-services.

В новой версии он перестал принимать каталог init.d в качестве параметра из файла make-initrd.mk (строка 122). Сообщает, что это не файл. Приходится дописывать "/*" после имени каталога сервисов. 

Стал выдавать ошибку при обнаружении init-сервиса без заголовка LSB, хотя пишет, что проигнорировал.

Стал останавливаться с ошибкой на неисполняемых файлах (functions, README), не знает ничего про "$local_fs" из скрипта llvm2.

Из-за этого опасно устанавливать новое ядро, файлы ставятся, а initrd не создаётся.
Comment 1 serpiph 2024-01-29 07:35:57 MSK
Также ошибка возникает на неправильных заголовках LSB. Каждая ошибка в конечном итоге вызывает fatal.

Добавили новые проверки, но не учли последствия?
Comment 2 Alexey Gladkov 2024-01-29 16:23:24 MSK
У вас сломалось что-то совсем другое. Давайте по порядку. 

Какая версия ?
Какие модули стоят ?
Какая ошибка появляется ?
Comment 3 Alexey Gladkov 2024-01-29 16:57:28 MSK
> Добавили новые проверки, но не учли последствия?

Если говорить о sort-services, то последний раз его модифицировали в 2021.
Comment 4 serpiph 2024-01-29 17:32:47 MSK
Вчера полностью обновил систему на текущий Сизиф. После dist-upgrade увидел строчки от запуска make-initrd:
init.d is not a regular file
make... [.../mk/make-initrd.mk:122] Error 1
make... [.../mk/make-initrd.mk:182] Error 2

В строке 122 make-initrd.mk из пакета стоит вызов sort-services с параметрами "--rcdir=.../etc/rc.d" и ".../etc/init.d".

Может быть, что сейчас изменили строку вызова этой функции.

До обновления проблемы не было.

Точные строки смогу прислать позднее, сейчас пишу по памяти, номера строк точно эти.
Comment 5 Alexey Gladkov 2024-01-29 17:41:31 MSK
(In reply to serpiph from comment #4)
> Вчера полностью обновил систему на текущий Сизиф. После dist-upgrade увидел
> строчки от запуска make-initrd:
> init.d is not a regular file
> make... [.../mk/make-initrd.mk:122] Error 1
> make... [.../mk/make-initrd.mk:182] Error 2
> 
> В строке 122 make-initrd.mk из пакета стоит вызов sort-services с
> параметрами "--rcdir=.../etc/rc.d" и ".../etc/init.d".
> 
> Может быть, что сейчас изменили строку вызова этой функции.
> 
> До обновления проблемы не было.
> 
> Точные строки смогу прислать позднее, сейчас пишу по памяти, номера строк
> точно эти.

Попробуйте вызвать make-initrd от рута в терминале и покажите вывод.
Comment 6 serpiph 2024-01-29 22:45:06 MSK
# make-initrd
[00:00:00] Config file: /etc/initrd.mk
module /lib/modules/6.1.71-std-def-alt1/misc/lkrg.ko
WARNING: Unknown features are specified in the config: plymouth systemd
[00:00:01] Generating module dependencies on host ...
sort-services: Service without LSB header (ignored)
make[2]: *** [/usr/share/make-initrd/mk/make-initrd.mk:122: pack] Error 1
make[1]: *** [/usr/share/make-initrd/mk/make-initrd.mk:182: process-config] Error 2
make: *** [/usr/share/make-initrd/mk/make-initrd.mk:172: all] Error 1
# rpm -qa | grep make-initrd
make-initrd-mdadm-2.42.0-alt1.noarch
make-initrd-devmapper-2.42.0-alt1.noarch
make-initrd-luks-2.42.0-alt1.noarch
make-initrd-lvm-2.42.0-alt1.noarch
make-initrd-2.42.0-alt1.x86_64
# cat /etc/initrd.mk
AUTODETECT = all
FEATURES += plymouth
FEATURES += systemd
MODULES_PRELOAD += autofs4

В /etc/initrd.mk.d ничего нет. Решил вывести, что же происходит внутри sort-services. Оказалось, что в образ попал файл /usr/share/make-inird/features/lkrg/data/etc/rc.d/init.d/lkrg из пакета make-initrd с LSB-заголовком в виде

# BEGIN INFO
# Provides:		lkrg
# Required-Start:	cmdline modules
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:	3 4 5
# Default-Stop:
# Short-Description:	Linux Kernel Runtime Guard.
# Description:		Linux Kernel Runtime Guard.
# END INFO

А sort-services ждёт начало и конец LSB-заголовка в виде
### BEGIN INFO
# ...
### END INFO

И на этом файле происходит падение программы sort-services.

То есть при невозможности найти LSB программа make-initrd пишет "ignored", но при этом спокойно падает, роняя весь процесс сборки ядра.
Comment 7 Alexey Gladkov 2024-01-29 22:47:11 MSK
Ясно.
Comment 8 Repository Robot 2024-02-07 21:18:51 MSK
make-initrd-2.43.0-alt1 -> sisyphus:

 Wed Feb 07 2024 Alexey Gladkov <legion@altlinux.ru> 2.43.0-alt1
 - New version (2.43.0).
 - Feature overlayfs:
   + New feature to take lowerdirs into account.
 - Feature guestfs:
   + Add gost checksum utilities.
 - Feature pipeline:
   + Add dependency on additional utilities.
   + Register ping= cmdline parameter.
 - Feature lkrg:
   + Fix LSM header for service (ALT#49219).
 - Feature multipath:
   + Add plugins directory.
   + Logically separate the multipath and sg3_utils files.
 - Feature plymouth:
   + Use the library list to find the plymouth directory.