** Description changed: + [Impact] + "multipath -r" causes the /dev/mapper/<wwid> to disappear momentarily, which leads to some issue in consumer applications as such OpenStack. - After some investigation, I found that /dev/mapper/<wwid> was deleted by - udev during the reload, and it was re-created soon later by multipathd - (livdevmapper code of cause). Detailed findings are as follows: + + [Test Case] + + * connect to an multipath iscsi target + * multipath -r + * /dev/mapper/<wwid> disappears momentarily + + [Regression Potential] + + * None + + + "multipath -r" causes the /dev/mapper/<wwid> to disappear momentarily, which leads to some issue in consumer applications as such OpenStack. After some investigation, I found that /dev/mapper/<wwid> was deleted by udev during the reload, and it was re-created soon later by multipathd (livdevmapper code of cause). Detailed findings are as follows: For reload in domap (rename as well), - case ACT_RELOAD: - r = dm_addmap_reload(mpp, params); - if (r) - r = dm_simplecmd_noflush(DM_DEVICE_RESUME, mpp->alias, - 0, MPATH_UDEV_RELOAD_FLAG); - break; + case ACT_RELOAD: + r = dm_addmap_reload(mpp, params); + if (r) + r = dm_simplecmd_noflush(DM_DEVICE_RESUME, mpp->alias, + 0, MPATH_UDEV_RELOAD_FLAG); + break; + it passes 0 to dm_simplecmd_noflush as argument for needsync, which + makes dm_task_set_cookie call being skipped in dm_simplecmd, - it passes 0 to dm_simplecmd_noflush as argument for needsync, which makes dm_task_set_cookie call being skipped in dm_simplecmd, + if (udev_wait_flag && !dm_task_set_cookie(dmt, &cookie, ((conf->daemon)? DM_UDEV_DISABLE_LIBRARY_FALLBACK : 0) | udev_flags)) { + dm_udev_complete(cookie); + goto out; + } - if (udev_wait_flag && !dm_task_set_cookie(dmt, &cookie, ((conf->daemon)? DM_UDEV_DISABLE_LIBRARY_FALLBACK : 0) | udev_flags)) { - dm_udev_complete(cookie); - goto out; - } - - - because of the short-circuit evaluation. Thus _do_dm_ioctl in libdevmapper will add DM_UDEV_DISABLE_DM_RULES_FLAG flag to dmi->event_nr, and that will eventually be used in the udev rules (55-dm.rules), + because of the short-circuit evaluation. Thus _do_dm_ioctl in + libdevmapper will add DM_UDEV_DISABLE_DM_RULES_FLAG flag to + dmi->event_nr, and that will eventually be used in the udev rules + (55-dm.rules), ENV{DM_UDEV_DISABLE_DM_RULES_FLAG}!="1", ENV{DM_NAME}=="?*", SYMLINK+="mapper/$env{DM_NAME}" - - Since the DM_UDEV_DISABLE_DM_RULES_FLAG is set, the rule will not match. As a result the link is removed. + Since the DM_UDEV_DISABLE_DM_RULES_FLAG is set, the rule will not match. + As a result the link is removed.
** Tags added: sts -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1621340 Title: 'multipath -r' causes /dev/mapper/<wwid> being removed To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/1621340/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs