File tree Expand file tree Collapse file tree 1 file changed +5
-5
lines changed
Expand file tree Collapse file tree 1 file changed +5
-5
lines changed Original file line number Diff line number Diff line change @@ -80,17 +80,17 @@ PGRecovery::start_recovery_ops(
8080 ceph_assert (pg->is_recovering ());
8181 ceph_assert (!pg->is_backfilling ());
8282
83- // move to unnamed placeholder when C++ 26 is available
84- auto reset_pglog_based_recovery_op = seastar::defer ([this ] {
85- pg->reset_pglog_based_recovery_op ();
86- });
87-
8883 if (!pg->get_peering_state ().needs_recovery ()) {
8984 if (pg->get_peering_state ().needs_backfill ()) {
9085 request_backfill ();
9186 } else {
9287 all_replicas_recovered ();
9388 }
89+ /* TODO: this is racy -- it's possible for a DeferRecovery
90+ * event to be processed between this call and when the
91+ * async RequestBackfill or AllReplicasRecovered events
92+ * are processed -- see https://tracker.ceph.com/issues/71267 */
93+ pg->reset_pglog_based_recovery_op ();
9494 co_return seastar::stop_iteration::yes;
9595 }
9696 co_return seastar::stop_iteration::no;
You can’t perform that action at this time.
0 commit comments