Commands issued from the daemon itself should always pass
CMD_NONE to coalesce_paths. Otherwise, the daemon mistakenly
tries to talk to itself via the socket, causing deadlock.

Reproduce simply by calling "multipathd add map $X".

Fixes: d19936f4 "libmultipath: Do not access 'conf->cmd' in domap()"
Signed-off-by: Martin Wilck <mwi...@suse.com>
---
 multipathd/cli_handlers.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c
index b4a95e37..f5ba4cfb 100644
--- a/multipathd/cli_handlers.c
+++ b/multipathd/cli_handlers.c
@@ -782,7 +782,7 @@ cli_add_map (void * v, char ** reply, int * len, void * 
data)
                                         vecs->pathvec, &refwwid);
                        if (refwwid) {
                                if (coalesce_paths(vecs, NULL, refwwid,
-                                                  FORCE_RELOAD_NONE, 1))
+                                                  FORCE_RELOAD_NONE, CMD_NONE))
                                        condlog(2, "%s: coalesce_paths failed",
                                                                        param);
                                dm_lib_release();
-- 
2.14.0

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to