From b4e8fb7a6611b693ae52f889eeeb8e551025dec5 Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Thu, 18 Apr 2024 15:40:19 -0400 Subject: [PATCH] mon/MgrMonitor: only drop active if exists This avoids an assertion in ::drop_active. Signed-off-by: Patrick Donnelly (cherry picked from commit 3fca1187460cdd05c08879b19840d78d787da9b0) --- src/mon/MgrMonitor.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mon/MgrMonitor.cc b/src/mon/MgrMonitor.cc index 580fd0da5fa95..74cfa71138600 100644 --- a/src/mon/MgrMonitor.cc +++ b/src/mon/MgrMonitor.cc @@ -1220,12 +1220,15 @@ bool MgrMonitor::prepare_command(MonOpRequestRef op) return r; } if (enable_down) { - if (!mon.osdmon()->is_writeable()) { + bool has_active = !!pending_map.active_gid; + if (has_active && !mon.osdmon()->is_writeable()) { mon.osdmon()->wait_for_writeable(op, new C_RetryMessage(this, op)); return false; } pending_map.flags |= MgrMap::FLAG_DOWN; - plugged |= drop_active(); + if (has_active) { + plugged |= drop_active(); + } } else { pending_map.flags &= ~(MgrMap::FLAG_DOWN); } -- 2.39.5