From 095ddc3edea1e314464f5c68157e918b999955bb Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 18 Jun 2019 11:47:05 -0500 Subject: [PATCH] mon/OSDMonitor: 'osd down ... --definitely-dead' Like 'osd down', but we also set dead_epoch. Should only be used if we know the process/host is already completely dead and unresponsive. Signed-off-by: Sage Weil --- src/mon/MonCommands.h | 3 ++- src/mon/OSDMonitor.cc | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index fc86c4d2c36c9..a507b8b38b989 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -813,7 +813,8 @@ COMMAND("osd require-osd-release "\ "set the minimum allowed OSD release to participate in the cluster", "osd", "rw") COMMAND("osd down " \ - "type=CephString,name=ids,n=N", \ + "name=ids,type=CephString,n=N " + "name=definitely_dead,type=CephBool,req=false", \ "set osd(s) [...] down, " \ "or use to set all osds down", \ "osd", "rw") diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 0944f8164cf05..973a6e06ec1a2 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -10780,9 +10780,12 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, bool any = false; bool stop = false; bool verbose = true; + bool definitely_dead = false; vector idvec; cmd_getval(cct, cmdmap, "ids", idvec); + cmd_getval(cct, cmdmap, "definitely_dead", definitely_dead); + derr << "definitely_dead " << (int)definitely_dead << dendl; for (unsigned j = 0; j < idvec.size() && !stop; j++) { set osds; @@ -10821,6 +10824,15 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, ss << "marked down osd." << osd << ". "; any = true; } + if (definitely_dead) { + if (!pending_inc.new_xinfo.count(osd)) { + pending_inc.new_xinfo[osd] = osdmap.osd_xinfo[osd]; + } + if (pending_inc.new_xinfo[osd].dead_epoch < pending_inc.epoch) { + any = true; + } + pending_inc.new_xinfo[osd].dead_epoch = pending_inc.epoch; + } } else if (prefix == "osd out") { if (osdmap.is_out(osd)) { if (verbose) -- 2.39.5