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