multipath discovery failed during install due to md arrays locking individual paths

Bug #1549506 reported by Mauricio Faria de Oliveira
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
hw-detect (Ubuntu)
Fix Released
Medium
Mathieu Trudel-Lapierre

Bug Description

Similarly to bug 1549504 (for LVM), but this one with LVM on top of md arrays.

During a Xenial installation, some of the multipath devices were not discovered, as individual paths were locked by MD arrays.

The fix is to deactivate MD arrays before multipath discovery (in hw-detect), and activate multipath partitions during partman/init.d (in partman-multipath), so that MD arrays can be re-activated on top of the multipath devices (slightly afterward on partman/init.d/25md-devices).

The fix also requires an extra udev rule in the mdadm assembly rules, because the device-mapper devices have no 'add' event (used by the rule for assembly), but only a 'change' event. The rule is required for the initramfs as well (automatically installed w/ the mdadm install triggers), otherwise the rootfs won't be found.

Failure:

~ # multipath -v5
<...>
Feb 22 14:46:02 | mpathb: addmap [0 1115734016 multipath 1 queue_if_no_path 1 alua 2 1 round-robin 0 1 1 8:16 1 round-robin 0 1 1 8:128 1]
Feb 22 14:46:02 | libdevmapper: ioctl/libdm-iface.c(1876): device-mapper: reload ioctl on mpathb failed: Device or resource busy
Feb 22 14:46:02 | mpathb: domap (0) failure for create/reload map
<...>
Feb 22 14:46:02 | mpathc: addmap [0 1115734016 multipath 1 queue_if_no_path 1 alua 2 1 round-robin 0 1 1 8:32 1 round-robin 0 1 1 8:144 1]
Feb 22 14:46:02 | libdevmapper: ioctl/libdm-iface.c(1876): device-mapper: reload ioctl on mpathc failed: Device or resource busy
Feb 22 14:46:02 | mpathc: domap (0) failure for create/reload map
<...>
Feb 22 14:46:02 | mpathd: addmap [0 1115734016 multipath 1 queue_if_no_path 1 alua 2 1 round-robin 0 1 1 8:48 1 round-robin 0 1 1 8:160 1]
Feb 22 14:46:02 | libdevmapper: ioctl/libdm-iface.c(1876): device-mapper: reload ioctl on mpathd failed: Device or resource busy
Feb 22 14:46:02 | mpathd: domap (0) failure for create/reload map
<...>
Feb 22 14:46:02 | mpathe: addmap [0 1115734016 multipath 1 queue_if_no_path 1 alua 2 1 round-robin 0 1 1 8:64 1 round-robin 0 1 1 8:176 1]
Feb 22 14:46:02 | libdevmapper: ioctl/libdm-iface.c(1876): device-mapper: reload ioctl on mpathe failed: Device or resource busy
Feb 22 14:46:02 | mpathe: domap (0) failure for create/reload map
<...>
Feb 22 14:46:02 | mpathf: addmap [0 1115734016 multipath 1 queue_if_no_path 1 alua 2 1 round-robin 0 1 1 8:80 1 round-robin 0 1 1 8:192 1]
Feb 22 14:46:02 | libdevmapper: ioctl/libdm-iface.c(1876): device-mapper: reload ioctl on mpathf failed: Device or resource busy
Feb 22 14:46:02 | mpathf: domap (0) failure for create/reload map

~ # dmsetup table | sort
mpatha: 0 1115455488 multipath 0 1 alua 2 1 round-robin 0 1 1 8:0 1 round-robin 0 1 1 8:112 1
mpathg: 0 1115734016 multipath 0 1 alua 2 1 round-robin 0 1 1 8:96 1 round-robin 0 1 1 8:208 1
pkvmci845--vg-root: 0 5351333888 linear 259:2 5555
pkvmci845--vg-swap_1: 0 225468416 linear 259:2 5351339443

~ # lvm pvdisplay | grep Name
  PV Name /dev/md0p3
  VG Name pkvmci845-vg

~ # grep ^md /proc/mdstat
md0 : active raid0 sdm1[4] sdl1[3] sdk1[2] sdj1[1] sdi2[0]

After the patch, the md array is on top of the multipath devices, and show up as a LVM PV correctly.

~ # grep ^md /proc/mdstat
md0 : active raid0 dm-9[1] dm-10[2] dm-8[0] dm-11[3] dm-12[4]

~ # lvm vgscan
  Reading all physical volumes. This may take a while...
  Found volume group "pkvmci845-vg" using metadata type lvm2
~ # lvm vgchange -ay
  2 logical volume(s) in volume group "pkvmci845-vg" now active
~ # lvm pvdisplay | grep Name
  PV Name /dev/md0p3
  VG Name pkvmci845-vg

Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :
Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :
Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :

Hi @mathieu-tl,
Can you check this bug/patches, please?
Thanks!

Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "hw-detect_3_mpathmdadm.debdiff" seems to be a debdiff. The ubuntu-sponsors team has been subscribed to the bug report so that they can review and hopefully sponsor the debdiff. If the attachment isn't a patch, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are member of the ~ubuntu-sponsors, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issue please contact him.]

tags: added: patch
Mathew Hodson (mhodson)
Changed in hw-detect (Ubuntu):
importance: Undecided → Medium
Changed in hw-detect (Ubuntu):
status: New → Triaged
assignee: nobody → Mathieu Trudel-Lapierre (mathieu-tl)
Revision history for this message
bugproxy (bugproxy) wrote : Comment bridged from LTC Bugzilla

------- Comment From <email address hidden> 2016-03-14 16:20 EDT-------
.

tags: added: architecture-ppc64le bugnameltc-138923 severity-medium targetmilestone-inin1604
Revision history for this message
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2016-03-21 09:49 EDT-------
Hi @mathieu-tl,

Can you confirm the milestone for this is 16.04?

Thank you!

Revision history for this message
Mathieu Trudel-Lapierre (cyphermox) wrote :

Yes, the milestone for this is 16.04; I'm finishing some smoketesting on these this week prior to uploading the whole thing.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package hw-detect - 1.114ubuntu4

---------------
hw-detect (1.114ubuntu4) xenial; urgency=medium

  [ Mauricio Faria de Oliveira ]
  * disk-detect.sh: multipath: reload udev rules before re-add devices
    to guarantee all devices may get new udev properties (LP: #1549456)
  * disk-detect.sh: multipath: deactivate LVM volumes before multipath
    discovery to unlock individual paths (LP: #1549504)
  * disk-detect.sh: multipath: deactivate md arrays before multipath
    discovery to unlock individual paths (LP: #1549506)

 -- Mathieu Trudel-Lapierre <email address hidden> Mon, 21 Mar 2016 14:24:03 -0400

Changed in hw-detect (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
Mauricio Faria de Oliveira (mfo) wrote :

@mathieu-tl,

Do you plan to upload the remaining patch for mdadm as well?

Thanks

Revision history for this message
bugproxy (bugproxy) wrote :

------- Comment From <email address hidden> 2016-03-21 20:40 EDT-------
Thanks, @mathieu-tl.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.