** 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

Reply via email to