← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1290681] Re: get_multipath_device_name can fail and lead to broken volumes

 

Moving to os-brick that now handles the mpath device lookup for Nova.
Previously Nova would call `multipath -ll $path` that would often miss
the actual creation of an mpath device when attaching thus causing the
issues outlined in this bug when detaching. The new path lookup approach
improves this situation but IMHO we could still add retry logic within
_discover_mpath_device in os-brick [1].

[1] https://github.com/openstack/os-
brick/blob/master/os_brick%2Finitiator%2Fconnector.py#L308

** Project changed: nova => os-brick

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1290681

Title:
  get_multipath_device_name can fail and lead to broken volumes

Status in os-brick:
  Confirmed

Bug description:
  This is hard to explain so here goes.....

  When a compute node is making a lot of multipath calls eg. due to bug 1277316 sometimes it can fail to retrieve a multipath device.
  When this happens it falls back to using the raw iscsi device.

  Example code:

  host_device = ("/dev/disk/by-path/ip-%s-iscsi-%s-lun-%s" %
                         (iscsi_properties['target_portal'],
                          iscsi_properties['target_iqn'],
                          iscsi_properties.get('target_lun', 0)))

  if libvirt_iscsi_use_multipath:
      multipath_device = self._get_multipath_device_name(host_device)
      if multipath_device is not None:
          host_device = multipath_device
  .....

  This still actually works for the attach but if you then detach this
  volume nova is expecting a multpath device and in the end it ends up
  disconnecting an iscsi connection which affects all volumes on the
  compute node.

  In my mind two things need to happen.

  1. If it can't find the multipath device it should fail, not fall back to iscsi device
  2. Need some retry logic in get_multipath_device_name

To manage notifications about this bug go to:
https://bugs.launchpad.net/os-brick/+bug/1290681/+subscriptions


References