Otherwise, an op might slip by between on_local_recover and
on_global_recover.
Signed-off-by: Samuel Just <sjust@redhat.com>
bool ReplicatedPG::is_degraded_or_backfilling_object(const hobject_t& soid)
{
+ /* The conditions below may clear (on_local_recover, before we queue
+ * the tranasction) before we actually requeue the degraded waiters
+ * in on_global_recover after the transaction completes.
+ */
+ if (waiting_for_degraded_object.count(soid))
+ return true;
if (pg_log.get_missing().missing.count(soid))
return true;
assert(!actingbackfill.empty());