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

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

    <bug>
          <bug_id>34854</bug_id>
          
          <creation_ts>2018-04-26 12:02:43 +0300</creation_ts>
          <short_desc>Не грузится 4.16.4-un-def</short_desc>
          <delta_ts>2018-08-10 14:32:38 +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>kernel-image-un-def</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>P3</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>34865</dependson>
          <blocked>34860</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Владимир Диденко">vladimir.didenko</reporter>
          <assigned_to name="Vitaly Chikunov">vt</assigned_to>
          <cc>aen</cc>
    
    <cc>antohami</cc>
    
    <cc>kernelbot</cc>
    
    <cc>klark.devel</cc>
    
    <cc>klark</cc>
    
    <cc>legion</cc>
    
    <cc>placeholder</cc>
    
    <cc>snejok</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>170648</commentid>
    <comment_count>0</comment_count>
    <who name="Владимир Диденко">vladimir.didenko</who>
    <bug_when>2018-04-26 12:02:43 +0300</bug_when>
    <thetext>Последнее ядро un-def 4.16.4 отказывается грузиться. Говорят, что модуля crc32c в initrd не хватает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170653</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-04-26 13:30:31 +0300</bug_when>
    <thetext>Пришлось откатывать регулярки 20180425 до 20180418.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170655</commentid>
    <comment_count>2</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2018-04-26 13:38:32 +0300</bug_when>
    <thetext>Хм...проблема где-то между ядром и make-initrd

Вообще, мне кажется, похожая проблема когда-то (несколько лет назад) уже была, но с ходу найти не могу.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170656</commentid>
    <comment_count>3</comment_count>
    <who name="Lenar Shakirov">snejok</who>
    <bug_when>2018-04-26 13:50:40 +0300</bug_when>
    <thetext>У нас был тонкий момент:
Это ядро пытались запускать на spt7, поэтому сначала не придали большого значения.

Оставлю для гугла:

initrd отваливается со словами:
...
mount: mount(2) failed: No such file or directory
mount: mount(2) failed: No such file or directory
mount: mount(2) failed: No such file or directory
...

В dmesg:
...
EXT4-fs (sda2): Cannot load crc32c driver.
EXT4-fs (sda2): Cannot load crc32c driver.
EXT4-fs (sda2): Cannot load crc32c driver.
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170657</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-04-26 14:03:40 +0300</bug_when>
    <thetext>(В ответ на комментарий №2)
&gt; похожая проблема когда-то (несколько лет назад) уже была
Именно, и мне кажется, что тоже с crc* (или даже crc32?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170684</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-04-27 12:43:21 +0300</bug_when>
    <thetext>Говорят, что 4.16.5 приехало неисправленным -- его проверяли загрузкой?

https://lists.altlinux.org/pipermail/sisyphus/2018-April/366675.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170697</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2018-04-27 19:18:11 +0300</bug_when>
    <thetext>Объезд -- добавить в /etc/initrd.mk строчку MODULES_PRELOAD += crc32

А в предыдущий раз, насколько припомнил, вылезло боком какое-то хитрое изменение межмодульных зависимостей в ядре вида &quot;была жёсткая, стала мягкая&quot; (безусловная поменялась на условную, подробностей совершенно не помню).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170700</commentid>
    <comment_count>7</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2018-04-27 19:44:55 +0300</bug_when>
    <thetext>Не похоже на это: https://bugs.archlinux.org/task/49380 ? это</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170701</commentid>
    <comment_count>8</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2018-04-27 20:16:07 +0300</bug_when>
    <thetext>make-initrd-0.8.15-alt1.M80P.6 -&gt; p8:

Fri Apr 27 2018 Leonid Krivoshein &lt;klark@altlinux&gt; 0.8.15-alt1.M80P.6
- Hard dependency to crc32c module added (Closes: #34854)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170702</commentid>
    <comment_count>9</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2018-04-27 20:17:59 +0300</bug_when>
    <thetext>Исправление для p8, ошибка на Sisyphus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170705</commentid>
    <comment_count>10</comment_count>
    <who name="Sergey Bolshakov">sbolshakov</who>
    <bug_when>2018-04-27 20:47:17 +0300</bug_when>
    <thetext>Пожалуйста, не нужно чинить это с помощью hard dependency в make-initrd
поскольку crypto в ядре имеет сильную arch-зависимую составляющую
достаточно было бы иметь (для x86): 
CONFIG_CRYPTO_CRC32C=y &lt;= (а не =m) и
CONFIG_CRYPTO_CRC32C_INTEL=m</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170707</commentid>
    <comment_count>11</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2018-04-27 21:21:24 +0300</bug_when>
    <thetext>Загрузка crc32c в fs/ext4/super.c появилась с версии v4.16-rc1-18-ga45403b51582 для фикса CVE-2018-1094.

Поэтому, на старых ядрах такой ошибки не могло быть.

&quot;Hard dependency&quot; мне представляется шагом в правильном направлении, если есть ext fs, то должно быть и crc32c.

&gt; CONFIG_CRYPTO_CRC32C=y &lt;= (а не =m) и
&gt; CONFIG_CRYPTO_CRC32C_INTEL=m

Если в initrd нет нужного модуля, то, предполагаю, что это все равно что `CONFIG_CRYPTO_CRC32C_INTEL=n`, так как &apos;позже&apos; crc32c-intel уже никто, скорее всего, не загрузит (надо бы проверить).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170708</commentid>
    <comment_count>12</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-04-27 22:23:28 +0300</bug_when>
    <thetext>(В ответ на комментарий №10)
&gt; Пожалуйста, не нужно чинить это с помощью hard dependency

Сказали срочно сделать именно так. Согласен полностью, что исправлению место не в make-initrd. Это временный костыль. Простите, с багом тоже погорячился.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170713</commentid>
    <comment_count>13</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2018-04-28 06:32:32 +0300</bug_when>
    <thetext>Висит баг явно не на том компоненте у нас. Проблема касается не только ядра un-def, но и std-def.
В Сизифе надо до вторника тоже исправить, хоть как-то, но исправить. Иначе регулярки следующей недели опять пойдут в утиль.
Думаю, все в курсе, но на всякий случай написал.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170716</commentid>
    <comment_count>14</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2018-04-28 07:45:32 +0300</bug_when>
    <thetext>(В ответ на комментарий №13)
&gt; Висит баг явно не на том компоненте у нас. Проблема касается не только ядра
&gt; un-def, но и std-def.

Ну так развесьте правильно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170719</commentid>
    <comment_count>15</comment_count>
    <who name="Антон Мидюков">antohami</who>
    <bug_when>2018-04-28 07:57:00 +0300</bug_when>
    <thetext>(В ответ на комментарий №14)
&gt; (В ответ на комментарий №13)
&gt; &gt; Висит баг явно не на том компоненте у нас. Проблема касается не только ядра
&gt; &gt; un-def, но и std-def.
&gt; 
&gt; Ну так развесьте правильно.

Раз патч к make-initrd, то и баг перевешиваю на make-initrd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170721</commentid>
    <comment_count>16</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2018-04-28 08:13:05 +0300</bug_when>
    <thetext>(В ответ на комментарий №15)
&gt; (В ответ на комментарий №14)
&gt; &gt; (В ответ на комментарий №13)
&gt; &gt; &gt; Висит баг явно не на том компоненте у нас. Проблема касается не только ядра
&gt; &gt; &gt; un-def, но и std-def.
&gt; &gt; 
&gt; &gt; Ну так развесьте правильно.
&gt; 
&gt; Раз патч к make-initrd, то и баг перевешиваю на make-initrd.

Не грузится ядро. Не стоит предсказывать решение, оно до конца не ясно.
А вот если у Вас не грузится std-def, то повесьте на него тоже. Но проверьте.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170722</commentid>
    <comment_count>17</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2018-04-28 08:51:58 +0300</bug_when>
    <thetext>&gt; Не грузится ядро.

Не грузятся модули из initrd. Потому что их там нет. А initrd создается make-initrd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170723</commentid>
    <comment_count>18</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2018-04-28 09:00:38 +0300</bug_when>
    <thetext>(В ответ на комментарий №17)
&gt; &gt; Не грузится ядро.
&gt; 
&gt; Не грузятся модули из initrd. Потому что их там нет. А initrd создается
&gt; make-initrd.
Ок. Тогда нужно сформулировать и повесить новую багу на make-initrd, а эту в зависимости.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170724</commentid>
    <comment_count>19</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2018-04-28 09:01:44 +0300</bug_when>
    <thetext>Поясняю для начальства.

В пакете ядра, kernel-image-un-def-4.16.5-alt1.x86_64.rpm, нужные модули есть.

$ less kernel-image-un-def-4.16.5-alt1.x86_64.rpm | grep /crc32c
-rw-------    1 root    root                     6125 апр 26 16:18 /lib/modules/4.16.5-un-def-alt1/kernel/arch/x86/crypto/crc32c-intel.ko.gz
-rw-------    1 root    root                     1721 апр 26 16:18 /lib/modules/4.16.5-un-def-alt1/kernel/crypto/crc32c_generic.ko.gz

Следовательно, ядро собрано правильно. Но эти модули не попадают на &quot;диск&quot; initrd.

Есть два решения 1) исправить make-initrd, 2) включить эти модули внутрь ядра, раз прога глючит.

Обоснование второго варианта решения мне кажется не правильным так как подрывает сам фунционал initrd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170725</commentid>
    <comment_count>20</comment_count>
    <who name="AEN">aen</who>
    <bug_when>2018-04-28 09:06:46 +0300</bug_when>
    <thetext>(В ответ на комментарий №19)
&gt; Поясняю для начальства.
Спасибо. Но это начальству уже понятно.
&gt; 
&gt; В пакете ядра, kernel-image-un-def-4.16.5-alt1.x86_64.rpm, нужные модули есть.
&gt; 
&gt; $ less kernel-image-un-def-4.16.5-alt1.x86_64.rpm | grep /crc32c
&gt; -rw-------    1 root    root                     6125 апр 26 16:18
&gt; /lib/modules/4.16.5-un-def-alt1/kernel/arch/x86/crypto/crc32c-intel.ko.gz
&gt; -rw-------    1 root    root                     1721 апр 26 16:18
&gt; /lib/modules/4.16.5-un-def-alt1/kernel/crypto/crc32c_generic.ko.gz
&gt; 
&gt; Следовательно, ядро собрано правильно. Но эти модули не попадают на &quot;диск&quot;
&gt; initrd.
&gt; 
&gt; Есть два решения 1) исправить make-initrd, 2) включить эти модули внутрь ядра,
&gt; раз прога глючит.
&gt; 
&gt; Обоснование второго варианта решения мне кажется не правильным так как
&gt; подрывает сам фунционал initrd.
Так что мешает повесить багу на make-initrd с корректной формулировкой и заголовком?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170727</commentid>
    <comment_count>21</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-04-28 11:23:36 +0300</bug_when>
    <thetext>(В ответ на комментарий №17)
&gt; &gt; Не грузится ядро.
&gt; 
&gt; Не грузятся модули из initrd. Потому что их там нет. А initrd создается
&gt; make-initrd.

В make-initrd отродясь не было модулей. Ни одного. crc32c стал единственным. Но он действительно имеет некий интеллект при помещении модулей в initramfs, поскольку умеет по зависимостям определять другие требуемые модули. В нашем случае, как я понимаю, зависимость от crc32c стала более мягкой, и это изменение произошло где-то при сборке ядра. Я прибил его гвоздями к make-initrd в надежде, что Антон, как только сможет, решит более правильно там, где нужно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170731</commentid>
    <comment_count>22</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2018-04-28 12:19:57 +0300</bug_when>
    <thetext>(In reply to comment #21)
&gt; (В ответ на комментарий №17)
&gt; &gt; &gt; Не грузится ядро.
&gt; &gt; 
&gt; &gt; Не грузятся модули из initrd. Потому что их там нет. А initrd создается
&gt; &gt; make-initrd.
&gt; 
&gt; В make-initrd отродясь не было модулей. Ни одного.

Я писал, что модули в make-initrd?

&gt; crc32c стал единственным.

Регулярка, которую ты ставил в феврале:

/boot# initrd-ls initrd-4.14.15-un-def-alt1.img|grep -c ko
33

&gt; Но он действительно имеет некий интеллект при помещении модулей в initramfs,
&gt; поскольку умеет по зависимостям определять другие требуемые модули.

Которых отродясь не было?

&gt; В нашем
&gt; случае, как я понимаю, зависимость от crc32c стала более мягкой, и это
&gt; изменение произошло где-то при сборке ядра.

Что за мягкое-твёрдое?

Я же написал откуда взялось требование crc32c в Comment #11. Эта &quot;зависимость&quot; не через depends свойство модуля, вероятно поэтому make-initrd её не увидел.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170735</commentid>
    <comment_count>23</comment_count>
    <who name="Leonid Krivoshein">klark.devel</who>
    <bug_when>2018-04-28 12:34:58 +0300</bug_when>
    <thetext>Видимо где-то очень близко подошли к сути!

(В ответ на комментарий №22)
&gt; Я же написал откуда взялось требование crc32c в Comment #11. Эта &quot;зависимость&quot;
&gt; не через depends свойство модуля, вероятно поэтому make-initrd её не увидел.

В нашем случае make-initrd делает примерно следующее:

depmod -a -F &quot;/boot/System.map-$KERNEL&quot; &quot;$KERNEL&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170743</commentid>
    <comment_count>24</comment_count>
    <who name="Vitaly Chikunov">vt</who>
    <bug_when>2018-04-28 13:16:59 +0300</bug_when>
    <thetext>Прошу кого-нибудь кто воспроизводил проблему ответить в Bug 34865.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170765</commentid>
    <comment_count>25</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2018-04-28 17:16:21 +0300</bug_when>
    <thetext>(В ответ на комментарий №22)
&gt; &gt; В нашем
&gt; &gt; случае, как я понимаю, зависимость от crc32c стала более мягкой, и это
&gt; &gt; изменение произошло где-то при сборке ядра.
&gt; 
&gt; Что за мягкое-твёрдое?

В ядре есть явные зависимости и не явные (softdep).

&gt; Я же написал откуда взялось требование crc32c в Comment #11. Эта &quot;зависимость&quot;
&gt; не через depends свойство модуля, вероятно поэтому make-initrd её не увидел.

Это очень странно. Похожая зависимость, например, у xfs:

# modinfo xfs |grep depends
depends:        libcrc32c

он явно требует libcrc32c, что на само деле тоже вызывает проблемы т.к. libcrc32c неявно хочет архитектурную реализацию crc32c. Сейчас её можно проследить через softdeps.

Но тут всё интереснее:

# modinfo ext4 |grep depends
depends:        mbcache,fscrypto,jbd2,crc16

Оно явно хочет crc16, но не libcrc32c.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170934</commentid>
    <comment_count>26</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2018-05-07 12:48:55 +0300</bug_when>
    <thetext>(В ответ на комментарий №4)
&gt; (В ответ на комментарий №2)
&gt; &gt; похожая проблема когда-то (несколько лет назад) уже была
&gt; Именно, и мне кажется, что тоже с crc* (или даже crc32?).

https://bugzilla.altlinux.org/show_bug.cgi?id=28641
То же самое, но в xfs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170935</commentid>
    <comment_count>27</comment_count>
    <who name="Anton V. Boyarshinov">boyarsh</who>
    <bug_when>2018-05-07 12:49:49 +0300</bug_when>
    <thetext>(В ответ на комментарий №5)
&gt; Говорят, что 4.16.5 приехало неисправленным -- его проверяли загрузкой?
&gt; 
&gt; https://lists.altlinux.org/pipermail/sisyphus/2018-April/366675.html

Все ядра у нас проверяются загрузкой на этапе сборки, но при этом не используется ext4...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173349</commentid>
    <comment_count>28</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2018-08-10 14:32:38 +0300</bug_when>
    <thetext>make-initrd-0.8.15-alt1.M80P.7 -&gt; c8.1:

Mon Apr 30 2018 Leonid Krivoshein &lt;klark@altlinux&gt; 0.8.15-alt1.M80P.7
- Depinfo utility v2.0.9 ported from Sisyphus to p8 branch
- Hidden dependency for ext4 filesystem added

Fri Apr 27 2018 Leonid Krivoshein &lt;klark@altlinux&gt; 0.8.15-alt1.M80P.6
- Hard dependency to crc32c module added (Closes: #34854)

Wed Mar 14 2018 Lenar Shakirov &lt;snejok@altlinux.ru&gt; 0.8.15-alt1.M80P.5
- /etc/mtab moved from /proc/mounts symlink to regular empty file (Closes: #31465)

Tue Feb 27 2018 Lenar Shakirov &lt;snejok@altlinux.ru&gt; 0.8.15-alt1.M80P.3
- stage ucode after compress (closes: #34456)

Mon Dec 04 2017 Sergey V Turchin &lt;zerg@altlinux&gt; 0.8.15-alt1.M80P.2
- fix requires

Thu Nov 02 2017 Sergey V Turchin &lt;zerg@altlinux&gt; 0.8.15-alt1.M80P.1
- Backport ucode feature for early loading microcode.

Fri Oct 13 2017 Anton V. Boyarshinov &lt;boyarsh@altlinux&gt; 0.8.14-alt1.M80P.1
- ignore load_modules return (there are some warnings, poisioning 
  return code of modprobe) (Closes: #32749)

Tue Mar 21 2017 Sergey Novikov &lt;sotor@altlinux&gt; 0.8.14-alt1
- fixed lvm discovery return code in case, when non-root LVM volumes
  inaccessible from initramfs (closes: #33243)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>