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

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

    <bug>
          <bug_id>33683</bug_id>
          
          <creation_ts>2017-07-25 19:22:51 +0300</creation_ts>
          <short_desc>недостающая зависимость от dmsetup</short_desc>
          <delta_ts>2017-07-26 11:51:36 +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>kpartx</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Shigorin">mike</reporter>
          <assigned_to name="Alexey Shabalin">shaba</assigned_to>
          <cc>gremlin</cc>
    
    <cc>mike</cc>
    
    <cc>shaba</cc>
    
    <cc>shrek</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>164855</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2017-07-25 19:22:51 +0300</bug_when>
    <thetext>Поймал на e2k, но актуально и на x86_64 как минимум; вероятно, стоит перенести зависимость от dmsetup из общего пакета multipath-tools конкретно в подпакет kpartx (который требуется multipath-tools).

Если запустить kpartx -a -s /dev/loop0 при отсутствующем dmsetup, он зависнет:

# kpartx -a -s /dev/loop0
^C
# strace -ff kpartx -a -s /dev/loop0
[...]
ioctl(3, DM_DEV_STATUS, 0x28d80)        = 0
ioctl(3, DM_TABLE_LOAD, 0x2cdb0)        = 0
open(&quot;/dev/urandom&quot;, O_RDONLY)          = 4
read(4, &quot;\255\264&quot;, 2)                  = 2
semget(223196333, 1, IPC_CREAT|IPC_EXCL|0600) = 32769
semctl(32769, 0, IPC_64|SETVAL, 0xc2dfffb3c148) = 0
semctl(32769, 0, IPC_64|GETVAL, 0xc2dfffb3c148) = 1
close(4, )                              = 0
semop(32769, 0xc2dfffb3c198, 1)         = 0
semctl(32769, 0, IPC_64|GETVAL, 0xc2dfffb3c148) = 2
ioctl(3, DM_DEV_SUSPEND, 0x28d60)       = 0
semget(223196333, 1, 0)                 = 32769
semctl(32769, 0, IPC_64|GETVAL, 0xc2dfffb3c1b8) = 2
semop(32769, 0xc2dfffb3c208, 1)         = 0
semop(32769, 0xc2dfffb3c250, 1^C &lt;unfinished ...&gt;

Если убрать -s -- завершится нормально, при этом образуется только /dev/loop0p1 (если образ содержал таблицу разделов с одним разделом, как в этом случае), но не /dev/mapper/loop0p1:

# kpartx -a /dev/loop0
# find /dev -name loop0p1      
/dev/loop0p1
# _

При попытке отформатировать /dev/loop0p1 получаем облом:

# mkfs.ext2 /dev/loop0p1
mke2fs 1.42.13 (17-May-2015)
/dev/loop0p1 is apparently in use by the system; will not make a filesystem here!
# strace -ff mkfs.ext4 /dev/loop0p1
[...]
stat(&quot;/dev/loop0p1&quot;, {st_mode=S_IFBLK|0660, st_rdev=makedev(259, 0), ...}) = 0
open(&quot;/dev/loop0p1&quot;, O_RDONLY|O_EXCL)   = -1 EBUSY (Device or resource busy)
write(2, &quot;/dev/loop0p1 is apparently in us&quot;..., 49/dev/loop0p1 is apparently in use by the system; ) = 49
write(2, &quot;will not make a filesystem here!&quot;..., 33will not make a filesystem here!
) = 33
exit_group(1)
# _

После установки dmsetup всё работает ожидаемым образом.

Понятно, что кривой код, который не делает нужных проверок, а молча ожидает наличия фактически требуемого бинарника -- неправ и в другом месте, но...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164862</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Vissarionov">gremlin</who>
    <bug_when>2017-07-26 11:34:34 +0300</bug_when>
    <thetext>Ситуация строго обратная: когда поддержка devmapper&apos;а полностью выпилена из системы, подобных проблем вообще не возникает.
Просто нужно понимать, какие риски он создает, а главное - где и в каких ситуациях его допустимо использовать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164864</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Vissarionov">gremlin</who>
    <bug_when>2017-07-26 11:51:36 +0300</bug_when>
    <thetext>root@evil:~ # kpartx -a /dev/loop2
/dev/mapper/control: open failed: No such device
Incompatible libdevmapper 1.02.137-git (2016-11-30) and kernel driver (unknown version).
device mapper prerequisites not met

Что делает libdevmapper на рабочей станции - мне непонятно.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>