Should fix bug #2761.
If we are already pushing soid, recovery_ops will only be decremented once for
all current pushes, so only increment recovery_ops if we are not currently
pushing it.
This bug causes us to leak a recovery op and get stuck in backfill.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
backfills_in_flight.insert(oid);
- start_recovery_op(oid);
+ if (!pushing.count(oid))
+ start_recovery_op(oid);
ObjectContext *obc = get_object_context(oid, OLOC_BLANK, false);
obc->ondisk_read_lock();
push_to_replica(obc, oid, peer);