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

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

    <bug>
          <bug_id>11133</bug_id>
          
          <creation_ts>2007-03-17 19:51:35 +0300</creation_ts>
          <short_desc>LVM + udev = race</short_desc>
          <delta_ts>2007-04-02 17:18:25 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>libe2fs</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>P2</priority>
          <bug_severity>blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sir Raorn">raorn</reporter>
          <assigned_to name="Gleb F-Malinovskiy">glebfm</assigned_to>
          <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>thresh</cc>
    
    <cc>vsu</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>46821</commentid>
    <comment_count>0</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2007-03-17 19:51:36 +0300</bug_when>
    <thetext>/dev/md0 (/boot) - 16M
/dev/md1 (/) - 667M
/dev/md3 (/var/lib/vz) - LVM

При загрузке fsck вываливается с руганью на /dev/.dev-253-0 (или что-то в этом
роде).  Вылечилось банальным sleep 3 после поднятия LVM.

P.S. Возможно этот баг стОит перевесить на более подходящий пакет.

23:32 &lt;raorn&gt; vsu: после старта LVM у меня чекалка не нашла
/dev/mapper/storage-OpenVZ AKA /dev/dm-3 AKA /dev/.dev-253-0
23:32 &lt;vsu&gt; raorn: и на каком основании не нашла?
23:33 &lt;raorn&gt; vsu: /dev/.dev-253-0
23:33 &lt;raorn&gt; vsu: вставил тупо sleep 3 после активации LVM и завелось
23:33 &lt;vsu&gt; raorn: не понял, оно что, его так обозвало?
23:34 &lt;raorn&gt; ну udeff наверно сначала левый файл создаёт
23:34 &lt;raorn&gt; а потом его переименовывает
23:34 &lt;raorn&gt; вот и race
23:34 &lt;raorn&gt; остальные разделы ма-а-а-а-аленькие
23:34 &lt;raorn&gt; быстро прочекались
23:34 &lt;vsu&gt; raorn: так при чём тут udeff? lvm же вроде сам своими кривыми лапами
в /dev лезет
23:35 &lt;raorn&gt; vsu: а udeff видимо dm-3 в этот момент создавал
23:35 &lt;raorn&gt; который по UUID находился первым
23:35 &lt;vsu&gt; raorn: ну и? он его в /dev создаёт, а /dev/mapper вообще не трогает
23:36 &lt;vsu&gt; raorn: в /dev/disk/by-uuid/* получаются симлинки в /dev/dm-*
23:36 &lt;vsu&gt; raorn: а в /dev/mapper/* файлы устройств отдельно лежат
23:36 &lt;raorn&gt; vsu: brw-r----- 1 root disk 253, 0 Mar 16 22:58 /dev/dm-0
23:36 &lt;vsu&gt; raorn: ну да, это udeff
23:36 &lt;raorn&gt; и подмонтирован у меня именно /dev/dm-0
23:37 &lt;vsu&gt; raorn: хм... а ты его как в fstab указал?
23:37 &lt;raorn&gt; /dev/mapper/storage-OpenVZ тоже есть
23:37 &lt;raorn&gt; vsu: по UUID
23:37 &lt;vsu&gt; а...
23:37 &lt;vsu&gt; тогда понятно
23:38 &lt;raorn&gt; во-о-о-от
23:38 &lt;vsu&gt; вот если писать /dev/mapper/storage-OpenVZ, будет работать
23:38 &lt;vsu&gt; правда, в df получится лажа
23:38 &lt;raorn&gt; дык инсталлер создал
23:38 &lt;vsu&gt; точнее, не совсем
23:39 &lt;vsu&gt; если написать /dev/storage/OpenVZ, df всё равно будет писать
/dev/mapper/storage-OpenVZ
23:39 &lt;vsu&gt; хотя в /proc/mounts при этом будет /dev/storage/OpenVZ
23:39 &lt;vsu&gt; а вот в mtab эти симлинки раскрываются
23:42  * lioka в /proc/mounts имеет и /dev/vg/vat и /dev/dm-* для lv 
23:42 &lt;vsu&gt; raorn: вообще не совсем понятно, что с этим делать
23:42 &lt;raorn&gt; в общем я сегодня-завтра развешаю багов и отпишу в рассылку
23:42 &lt;vsu&gt; lioka: а в fstab это в виде UUID=.... ?
23:43 &lt;lioka&gt; vsu: нет, LABEL, что в общем одно и тожк
23:43 &lt;vsu&gt; ну да, вид сбоку
23:43 &lt;lioka&gt; те, что dm-* -- создавались во время этого uptime
23:43 &lt;vsu&gt; тогда это к libblkid или как ещё называется та жопа, через которую
сделан поиск
23:44 &lt;vsu&gt; видимо, что первое попалось, то и цепляется</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46828</commentid>
    <comment_count>1</comment_count>
    <who name="Sergey Vlasov">vsu</who>
    <bug_when>2007-03-17 21:35:14 +0300</bug_when>
    <thetext>/dev/.dev-253-0 - это файл устройства, временно создаваемый udevd в процессе
обработки событий (например, для передачи vol_id, когда окончательное имя
устройства ещё не определено). Вероятно, проблема в том, что библиотека
libblkid, используемая для поиска устройств в случае, если в fstab задано
UUID=... или LABEL=..., перебирает все файлы устройств в /dev в поисках
подходящего, и в некоторых случаях может получить такой временный файл
устройства, созданный udevd.

Один из вариантов обхода проблемы - модифицировать libblkid, чтобы скрытые файлы
(.*) там игнорировались (кстати, в /dev ещё может быть каталог /dev/evms/.nodes,
устройства из которого тоже использовать нежелательно). Хотя это не спасает от
неоднозначности - при использовании lvm устройства dm присутствуют в /dev в двух
экземплярах (/dev/dm-$NUMBER и симлинки на них, создаваемые udevd, и
/dev/mapper/$VG_NAME-$LV_NAME и симлинки /dev/$VG_NAME/$LV_NAME, создаваемые
lvm), и libblkid использует один из этих вариантов фактически случайным образом.
Впрочем, фатальных проблем это не вызывает, но вывод команд mount и df
становится некрасивым.

Если указывать тома lvm в fstab не через UUID=... или LABEL=..., а в виде
/dev/$VG_NAME/$LV_NAME, подобные проблемы возникать не должны. Возможно, в
инсталяторе при использовании lvm стоит заполнять fstab именно таким образом.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47573</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2007-04-01 17:44:39 +0400</bug_when>
    <thetext>Я соберу libblkid с поддержкой libdevmapper, это должно решить проблему.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47576</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2007-04-01 19:29:18 +0400</bug_when>
    <thetext>Should be fixed in 1.39-alt3.
Please reopen if not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47643</commentid>
    <comment_count>4</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2007-04-02 15:45:04 +0400</bug_when>
    <thetext>Похоже, что всё в порядке:

/dev/dm-1 on /home type ext3 (rw,nosuid)
/dev/mapper/storage-usr on /usr type ext3 (rw,nodev,noatime)
/dev/dm-2 on /var type ext3 (rw,nosuid)

Раньше падало, видимо, на создании /dev/dm-* для /usr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47649</commentid>
    <comment_count>5</comment_count>
    <who name="Sergey Vlasov">vsu</who>
    <bug_when>2007-04-02 15:58:07 +0400</bug_when>
    <thetext>Но /dev/dm-* и /dev/mapper/* всё равно цепляются случайным образом?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47660</commentid>
    <comment_count>6</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2007-04-02 17:18:25 +0400</bug_when>
    <thetext>Думаю, приоритет у dm-*, но для /usr этот dm-* ещё не создан udev&apos;ом.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>