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 <pdonnell@redhat.com>
This commit is contained in:
Patrick Donnelly 2021-07-14 13:31:21 -07:00
parent 9297690e9a
commit d9dc2f11d5
2 changed files with 5 additions and 4 deletions

View File

@ -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

View File

@ -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;