Bug 1330480

Summary: kpartx on multipath device returning before creation of dm partition device
Product: Red Hat Enterprise Linux 7 Reporter: Marcel Kolaja <mkolaja>
Component: device-mapper-multipathAssignee: Ben Marzinski <bmarzins>
Status: CLOSED ERRATA QA Contact: Lin Li <lilin>
Severity: high Docs Contact:
Priority: high    
Version: 7.1CC: agk, bmarzins, dwysocha, heinzm, jmagrini, jpittman, kcleveng, lilin, mnavrati, 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-85.el7_2.4 Doc Type: Bug Fix
Doc Text:
Previously, the kpartx tool was by default returning without waiting for devices to be created. As a consequence, the devices did not exist immediately after kpartx returned, which was unexpected. With this update, kpartx by default waits until the devices are created before returning, and the described problem no longer occurs.
Story Points: ---
Clone Of: 1299648 Environment:
Last Closed: 2016-05-12 10:07:41 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1299648    
Bug Blocks:    

Description Marcel Kolaja 2016-04-26 10:22:55 UTC
This bug has been copied from bug #1299648 and has been proposed
to be backported to 7.2 z-stream (EUS).

Comment 3 Ben Marzinski 2016-04-27 22:58:00 UTC
Fix ported.

Comment 5 Lin Li 2016-05-03 13:00:15 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-85.el7_2.4
1). # rpm -qa | grep kpartx
kpartx-0.4.9-85.el7_2.4.x86_64
2). # rpm -qa | grep multipath
device-mapper-multipath-0.4.9-85.el7_2.4.x86_64
device-mapper-multipath-libs-0.4.9-85.el7_2.4.x86_64
device-mapper-multipath-sysvinit-0.4.9-85.el7_2.4.x86_64
3). Execute script mentioned to reproduce
2+0 records in
2+0 records out
2147483648 bytes (2.1 GB) copied, 1.34694 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: 784124390



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

Comment 7 errata-xmlrpc 2016-05-12 10:07:41 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-1027.html