Bug 1299648

Summary: kpartx on multipath device returning before creation of dm partition device
Product: Red Hat Enterprise Linux 7 Reporter: Ben Marzinski <bmarzins>
Component: device-mapper-multipathAssignee: Ben Marzinski <bmarzins>
Status: CLOSED ERRATA QA Contact: Lin Li <lilin>
Severity: high Docs Contact: Steven J. Levine <slevine>
Priority: high    
Version: 7.1CC: agk, bmarzins, dwysocha, heinzm, jmagrini, jpittman, kcleveng, lilin, msnitzer, prajnoha, prockai, rbalakri, zkabelac
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: device-mapper-multipath-0.4.9-87.el7 Doc Type: Bug Fix
Doc Text:
The `kpartx` tool no longer returns before devices are created Previously, by default the `kpartx` tool returned without waiting for devices to be created. This was a source of confusion for users who would expect the devices to exist immediately after `kpartx` returned. With this update, `kpartx` by default now waits until the devices are created before returning.
Story Points: ---
Clone Of: 1254692
: 1330480 (view as bug list) Environment:
Last Closed: 2016-11-04 08:16:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On: 1254692    
Bug Blocks: 1203710, 1313485, 1295577, 1330480    

Comment 1 Ben Marzinski 2016-02-26 22:41:09 UTC
kpartx now runs it sync mode by default.

Comment 6 Lin Li 2016-04-25 11:32:22 UTC
Reproduced on device-mapper-multipath-0.4.9-77.el7
1). # rpm -qa | grep kpartx
    kpartx-0.4.9-77.el7.x86_64
2). # rpm -qa | grep multipath
device-mapper-multipath-libs-0.4.9-77.el7.x86_64
device-mapper-multipath-0.4.9-77.el7.x86_64
device-mapper-multipath-sysvinit-0.4.9-87.el7.x86_64
3). Execute script mentioned to reproduce
2+0 records in
2+0 records out
2147483648 bytes (2.1 GB) copied, 2.42782 s, 885 MB/s
sfdisk: Warning: /var/tmp/imgtst.img is not a block device

sfdisk: Disk /var/tmp/imgtst.img: cannot get geometry


Disk /var/tmp/imgtst.img: 261 cylinders, 255 heads, 63 sectors/track
sfdisk:  /var/tmp/imgtst.img: unrecognized partition table type

Old situation:
sfdisk: No partitions found

New situation:
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/var/tmp/imgtst.img1          0+    259     260-   2088449+  83  Linux
/var/tmp/imgtst.img2          0       -       0          0    0  Empty
/var/tmp/imgtst.img3          0       -       0          0    0  Empty
/var/tmp/imgtst.img4          0       -       0          0    0  Empty
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition table


If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
add map loop0p1 (253:5): 0 4176899 linear /dev/loop0 1
NO: 313085087
NO: 316822069
NO: 319848978
NO: 323203567
NO: 326373389
NO: 329500389
NO: 332653052
NO: 336869907
NO: 339931134
NO: 343157047
NO: 346240276
NO: 349212883
NO: 352183837
NO: 355079186
NO: 358050272
OK: 361472619



Verified on device-mapper-multipath-0.4.9-87.el7
1). # rpm -qa | grep kpartx
kpartx-0.4.9-87.el7.x86_64
2). # rpm -qa | grep multipath
device-mapper-multipath-0.4.9-87.el7.x86_64
device-mapper-multipath-sysvinit-0.4.9-87.el7.x86_64
device-mapper-multipath-libs-0.4.9-87.el7.x86_64
3). Execute script mentioned to reproduce
2+0 records in
2+0 records out
2147483648 bytes (2.1 GB) copied, 1.34744 s, 1.6 GB/s
sfdisk: Warning: /var/tmp/imgtst.img is not a block device

sfdisk: Disk /var/tmp/imgtst.img: cannot get geometry


Disk /var/tmp/imgtst.img: 261 cylinders, 255 heads, 63 sectors/track
sfdisk:  /var/tmp/imgtst.img: unrecognized partition table type

Old situation:
sfdisk: No partitions found

New situation:
Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/var/tmp/imgtst.img1          0+    259     260-   2088449+  83  Linux
/var/tmp/imgtst.img2          0       -       0          0    0  Empty
/var/tmp/imgtst.img3          0       -       0          0    0  Empty
/var/tmp/imgtst.img4          0       -       0          0    0  Empty
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition table


If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
add map loop0p1 (253:5): 0 4176899 linear /dev/loop0 1
OK: 114357926



Test result: device mapper partition device is created prior to the kpartx command returning

Comment 12 errata-xmlrpc 2016-11-04 08:16:24 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-2536.html