From d9dc2f11d56fb4341ba5823f8d17459d10f3b2c1 Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Wed, 14 Jul 2021 13:31:21 -0700 Subject: [PATCH] mon/MDSMonitor: return mon_mds_force_trim_to even if equal to current epoch The PaxosService code already excludes the value returned by PaxosService::get_trim_to as the upper bound of the range of epochs to trim. Without this fix, you need to set mon_mds_force_trim_to to one greater than the epoch you want to trim _and_ force the current epoch to be one greater than that; the net result being that you can only force trimming up to 2 epochs behind the current epoch. This change is helpful for resolving issue 51673, but not strictly necessary. Related-to: https://tracker.ceph.com/issues/51673 Signed-off-by: Patrick Donnelly --- src/common/options/mon.yaml.in | 7 ++++--- src/mon/MDSMonitor.cc | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/common/options/mon.yaml.in b/src/common/options/mon.yaml.in index efeeea85dbf..526fc44607e 100644 --- a/src/common/options/mon.yaml.in +++ b/src/common/options/mon.yaml.in @@ -756,9 +756,10 @@ options: - name: mon_mds_force_trim_to type: int level: dev - desc: force mons to trim mdsmaps/fsmaps through this epoch - fmt_desc: Force monitor to trim mdsmaps to this point (0 disables it. - dangerous, use with care) + desc: force mons to trim mdsmaps/fsmaps up to this epoch + fmt_desc: Force monitor to trim mdsmaps up to but not including this FSMap + epoch. A value of 0 disables (the default) this config. This command is + potentially dangerous, use with care. default: 0 services: - mon diff --git a/src/mon/MDSMonitor.cc b/src/mon/MDSMonitor.cc index 8eb9910bf7d..c4cfe6c7855 100644 --- a/src/mon/MDSMonitor.cc +++ b/src/mon/MDSMonitor.cc @@ -290,7 +290,7 @@ version_t MDSMonitor::get_trim_to() const { version_t floor = 0; if (g_conf()->mon_mds_force_trim_to > 0 && - g_conf()->mon_mds_force_trim_to < (int)get_last_committed()) { + g_conf()->mon_mds_force_trim_to <= (int)get_last_committed()) { floor = g_conf()->mon_mds_force_trim_to; dout(10) << __func__ << " explicit mon_mds_force_trim_to = " << floor << dendl;