Linux Device Mapper development
 help / color / mirror / Atom feed
* [PATCH] 11-dm-mpath.rules: dont't run "multipath -U" during coldplug
@ 2018-04-06 11:45 Martin Wilck
  2018-04-12 19:52 ` Benjamin Marzinski
  0 siblings, 1 reply; 2+ messages in thread
From: Martin Wilck @ 2018-04-06 11:45 UTC (permalink / raw)
  To: Christophe Varoqui; +Cc: dm-devel, Martin Wilck

When udevadm trigger is run after switching root, lots of simultaneous uevents
for both path and multipath devices arrive. In may happen that when "multipath
-U" is called on a dm device, the path's uevents haven't finished yet, thus
the paths aren't found in the udev db, and multipath -U erroneously concludes
that there are no usable paths. Avoid that by skipping "multipath -U" during
coldplug.

Fixes: "ce5ea6a 11-dm-mpath.rules: multipath -U for READY check"
Signed-off-by: Martin Wilck <mwilck@suse.com>
---
 multipath/11-dm-mpath.rules | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/multipath/11-dm-mpath.rules b/multipath/11-dm-mpath.rules
index 03ac5da..07320a1 100644
--- a/multipath/11-dm-mpath.rules
+++ b/multipath/11-dm-mpath.rules
@@ -26,6 +26,10 @@ ENV{DM_NR_VALID_PATHS}=="0", ENV{MPATH_DEVICE_READY}="0", GOTO="mpath_action"
 ENV{MPATH_SBIN_PATH}="/sbin"
 TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin"
 
+# Don't run multipath -U during "coldplug" after switching root,
+# because paths are just being added to the udev db.
+ACTION=="add", ENV{.MPATH_DEVICE_READY_OLD}=="1", GOTO="paths_ok"
+
 # Check the map state directly with multipath -U.
 # This doesn't attempt I/O on the device.
 PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -U %k", GOTO="paths_ok"
-- 
2.16.1

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] 11-dm-mpath.rules: dont't run "multipath -U" during coldplug
  2018-04-06 11:45 [PATCH] 11-dm-mpath.rules: dont't run "multipath -U" during coldplug Martin Wilck
@ 2018-04-12 19:52 ` Benjamin Marzinski
  0 siblings, 0 replies; 2+ messages in thread
From: Benjamin Marzinski @ 2018-04-12 19:52 UTC (permalink / raw)
  To: Martin Wilck; +Cc: dm-devel

On Fri, Apr 06, 2018 at 01:45:21PM +0200, Martin Wilck wrote:
> When udevadm trigger is run after switching root, lots of simultaneous uevents
> for both path and multipath devices arrive. In may happen that when "multipath
> -U" is called on a dm device, the path's uevents haven't finished yet, thus
> the paths aren't found in the udev db, and multipath -U erroneously concludes
> that there are no usable paths. Avoid that by skipping "multipath -U" during
> coldplug.
> 

Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>

> Fixes: "ce5ea6a 11-dm-mpath.rules: multipath -U for READY check"
> Signed-off-by: Martin Wilck <mwilck@suse.com>
> ---
>  multipath/11-dm-mpath.rules | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/multipath/11-dm-mpath.rules b/multipath/11-dm-mpath.rules
> index 03ac5da..07320a1 100644
> --- a/multipath/11-dm-mpath.rules
> +++ b/multipath/11-dm-mpath.rules
> @@ -26,6 +26,10 @@ ENV{DM_NR_VALID_PATHS}=="0", ENV{MPATH_DEVICE_READY}="0", GOTO="mpath_action"
>  ENV{MPATH_SBIN_PATH}="/sbin"
>  TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin"
>  
> +# Don't run multipath -U during "coldplug" after switching root,
> +# because paths are just being added to the udev db.
> +ACTION=="add", ENV{.MPATH_DEVICE_READY_OLD}=="1", GOTO="paths_ok"
> +
>  # Check the map state directly with multipath -U.
>  # This doesn't attempt I/O on the device.
>  PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -U %k", GOTO="paths_ok"
> -- 
> 2.16.1

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-04-12 19:52 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-06 11:45 [PATCH] 11-dm-mpath.rules: dont't run "multipath -U" during coldplug Martin Wilck
2018-04-12 19:52 ` Benjamin Marzinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox