Counting them as ops but not requeueing the pg for recovery causes
backfill to stall when only deletions are sent in
recover_backfill(). Deletions are cheap and don't need to be acked, so
we can simply stop counting them as ops.
Fixes: #2044
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
dout(20) << " removing peer " << pbi.begin << dendl;
to_remove[pbi.begin] = pbi.objects.begin()->second;
pbi.pop_front();
- ops++;
+ // Don't increment ops here because deletions
+ // are cheap and not replied to unlike real recovery_ops,
+ // and we can't increment ops without requeueing ourself
+ // for recovery.
} else if (pbi.begin == backfill_info.begin) {
if (pbi.objects.begin()->second !=
backfill_info.objects.begin()->second) {