]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
mon/OSDMonitor: properly set last_force_op_resend in stretch mode
authorIlya Dryomov <idryomov@gmail.com>
Tue, 29 Mar 2022 15:53:57 +0000 (17:53 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Fri, 1 Apr 2022 09:55:11 +0000 (11:55 +0200)
commit609a648e7eba69ee9d1f18685cc5a8e74994a750
treef8c14ec199d50b9491032af1c0e5289cc544b873
parentdaea072720c1f79a13cc63845a0f8ea81a384a79
mon/OSDMonitor: properly set last_force_op_resend in stretch mode

Setting last_force_op_resend but not last_force_op_resend_prenautilus
and last_force_op_resend_preluminous doesn't make sense.  The reverse,
such as

  last_force_op_resend = 0
  last_force_op_resend_prenautilus = 0
  last_force_op_resend_preluminous = 20

or

  last_force_op_resend = 0
  last_force_op_resend_prenautilus = 40
  last_force_op_resend_preluminous = 40

is valid in PG split/merge cases (and is the reason prenautilus and
preluminous fields actually exist and aren't just encoding artifacts),
but, if last_force_op_resend is set, both prenautilus and preluminous
fields should really be set to the same value.  Otherwise it basically
amounts to "nautilus+ clients need to resend in-flight ops on stretch
mode transitions but pre-nautilus clients don't" which is bogus as it
leaves pre-nautilus clients exposed to the nastiness that necessitated
employing the force resend hammer in the first place in commit
97fbd19ccd02 ("osd: mon: account for stretch bucket configs/changes
when detecting intervals").

Fixes: https://tracker.ceph.com/issues/55158
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
src/mon/OSDMonitor.cc