]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
crimson/osd/pg_recovery: only reset_pglog_based_recovery_op if complete
authorSamuel Just <sjust@redhat.com>
Fri, 9 May 2025 16:46:48 +0000 (16:46 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Sun, 11 May 2025 08:00:48 +0000 (08:00 +0000)
commite453ae70c68154c2ec3b430a8e07bd324b727849
treeff1a7e8d9984955b5a918958b3e702e62d77d69c
parentab8609c88eca28622ed3c282a3ccc72f6e3641cc
crimson/osd/pg_recovery: only reset_pglog_based_recovery_op if complete

ce4e9aaad, as part of the start_recovery_ops changed the call to
reset_pglog_based_recovery_op to occur unconditionally rather than only
if recovery has completed.

Note, this fix only restores the prior behavior.  There's actually still
a race here where a DeferRecovery could be processed between the call to
reset_pglog_based_recovery_op and the RequestBackfill or
AllReplicasRecovered being processed.

Introduced: ce4e9aaad8f2cafae24511fe1687c61dc41affc1
Related: https://tracker.ceph.com/issues/71267
Fixes: https://tracker.ceph.com/issues/70337
Signed-off-by: Samuel Just <sjust@redhat.com>
(cherry picked from commit c95509edcdf387f8e57416f557bd154049ef34df)
src/crimson/osd/pg_recovery.cc