<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>44061</bug_id>
          
          <creation_ts>2022-10-17 18:15:45 +0300</creation_ts>
          <short_desc>Если указать неверный init=/путь/до/init, bootchain висит, ошибок не выдаёт</short_desc>
          <delta_ts>2023-04-09 10:40:18 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>make-initrd-bootchain</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>44111</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Антон Мидюков">antohami</reporter>
          <assigned_to name="Leonid Krivoshein">klark</assigned_to>
          <cc>antohami</cc>
    
    <cc>klark</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>216051</commentid>
    <comment_count>0</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-10-17 18:15:45 +0300</bug_when>
    <thetext>Если указать неверный init=/путь/до/init, bootchain висит и ошибок не выдаёт.
Ожидаемое поведение: выдаётся критическая ошибка, происходит перезагрузка.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216356</commentid>
    <comment_count>1</comment_count>
    <who name="Leonid Krivoshein">klark</who>
    <bug_when>2022-10-23 02:18:03 +0300</bug_when>
    <thetext>Просуммирую тут, что есть, что обсудили, и чего надо делать...

Как показывает связанный баг #44111, да и по логике, никакого отношения bootchain к зависанию и анализу параметра init= не имеет. К этому моменту он уже отработал и вышел, далее работает код в make-initrd и в смежном баге говорится о выдаче ошибки при проверке перед запуском второй стадии. Так что заголовок бага некорректен.

Другое дело, что в altboot, если включены диалоги ввода (а по умолчанию они включены), нам ничто не мешает сделать ещё одну проверку на предмет наличия init-скрипта во второй стадии, и, если видна проблема, выдавать диалог с ошибкой. Сделать это лучше всего на последнем шаге liveboot. Но тогда это уже не баг, а фичреквест.

Однако почти каждый шаг altboot может работать как сам по себе (повторяться в цепочке bootchain), так и в режиме совместимости с пропагатором, где есть определённая последовательность и каждый шаг выполняется лишь единожды. По умолчанию при загрузке на Сизифе сейчас используется второй вариант. Думаю, проверка и диалог в liveboot на последнем этапе должны выполняться только в этом втором режиме совместимости с пропагатором.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216386</commentid>
    <comment_count>2</comment_count>
    <who name="Leonid Krivoshein">klark</who>
    <bug_when>2022-10-24 02:36:31 +0300</bug_when>
    <thetext>Собрал пробное задание #308896. Хорошо бы тоже проверить. Потом можно будет объединить все успешные изменения.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216387</commentid>
    <comment_count>3</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-10-24 06:39:40 +0300</bug_when>
    <thetext>(Ответ для Leonid Krivoshein на комментарий #2)
&gt; Собрал пробное задание #308896. Хорошо бы тоже проверить. Потом можно будет
&gt; объединить все успешные изменения.

Не работает, в логе ошибка:
/lib/bootchain/liveboot: line 158: IM_errmsg: command not found

И почему нужно проверять в liveboot, а не в rootfs? В rootfs гораздо логичнее и универсальнее. И почему бы не текстом вывести, если не хочется в rootfs графику тащить?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216409</commentid>
    <comment_count>4</comment_count>
    <who name="Leonid Krivoshein">klark</who>
    <bug_when>2022-10-24 14:05:22 +0300</bug_when>
    <thetext>(Ответ для Антон Мидюков на комментарий #3)
&gt; Не работает, в логе ошибка:
&gt; /lib/bootchain/liveboot: line 158: IM_errmsg: command not found
Мой косяк, переделаю. Нужно было эту форму заинклюдить.

&gt; И почему нужно проверять в liveboot, а не в rootfs? В rootfs гораздо
&gt; логичнее и универсальнее.
rootfs -- это шаг bootchain, т.е. изначально pipeline. Его задача перевести загрузку на уровень telinit 2. Ещё он может последний шаг переместить в /root, но в пропагаторном режиме это уже и так сделано ранее. Главным образом rootfs не имеет никакого отношения к altboot, к диалогам, к каким-либо проверкам.

liveboot -- последний шаг altboot в режиме совместимости с пропагатором, и только в этом режиме стоит проверять и выводить диалог по выше обозначенной причине.

&gt; И почему бы не текстом вывести, если не хочется в rootfs графику тащить?
Насколько я понимаю, к задаче bootchain/altboot это уже не относится и какая-то диагностика в логах или где-то ещё при такой ошибке будет предоставлена самим make-initrd, судя по смежной задаче. Мы тут средствами altboot просто чуть раньше проверяем то же самое и выводим диалог более красиво.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216413</commentid>
    <comment_count>5</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-10-24 14:44:43 +0300</bug_when>
    <thetext>(Ответ для Leonid Krivoshein на комментарий #4)
&gt; (Ответ для Антон Мидюков на комментарий #3)
&gt; &gt; И почему бы не текстом вывести, если не хочется в rootfs графику тащить?
&gt; Насколько я понимаю, к задаче bootchain/altboot это уже не относится и
&gt; какая-то диагностика в логах или где-то ещё при такой ошибке будет
&gt; предоставлена самим make-initrd, судя по смежной задаче. Мы тут средствами
&gt; altboot просто чуть раньше проверяем то же самое и выводим диалог более
&gt; красиво.

legion@ обещает скоро в Сизифе, так что предлагаю, пока ничего не делать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216973</commentid>
    <comment_count>6</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2022-11-07 06:22:00 +0300</bug_when>
    <thetext>Исправления:
https://bugzilla.altlinux.org/show_bug.cgi?id=44111

вполне достаточно. Ничего в bootchain делать не требуется.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224170</commentid>
    <comment_count>7</comment_count>
    <who name="Leonid Krivoshein">klark</who>
    <bug_when>2023-04-09 08:12:34 +0300</bug_when>
    <thetext>Баг в том, что если после шага squashfs  /root нет $INIT, то по крайней мере в диалоговом режиме altboot нет смысла накладывать оверлей, есть смысл вывести диалог о фатальной ошибке. Исправил в #318262.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224174</commentid>
    <comment_count>8</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2023-04-09 10:40:18 +0300</bug_when>
    <thetext>make-initrd-bootchain-0.1.5-alt12 -&gt; sisyphus:

 Sun Apr 09 2023 Leonid Krivoshein &lt;klark@altlinux&gt; 0.1.5-alt12
 - bootchain-altboot: use altboot forever by check logic (ALT #45787)
 - bootchain-core: delay switching to localdev boot method after loop
 - download: don&apos;t set NFS method when loading via HTTP (ALT #43970)
 - liveboot: add check for init= in propagator mode (ALT #44061)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>