mon/OSDMonitor: properly set last_force_op_resend in stretch mode #45744
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
97fbd19 ("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
Checklist
Show available Jenkins commands
jenkins retest this please
jenkins test classic perf
jenkins test crimson perf
jenkins test signed
jenkins test make check
jenkins test make check arm64
jenkins test submodules
jenkins test dashboard
jenkins test dashboard cephadm
jenkins test api
jenkins test docs
jenkins render docs
jenkins test ceph-volume all
jenkins test ceph-volume tox
jenkins test windows