mirror of
https://github.com/ceph/ceph
synced 2024-12-26 05:25:09 +00:00
ReplicatedPG: treat object as degraded until on_global_recover
Otherwise, an op might slip by between on_local_recover and on_global_recover. Signed-off-by: Samuel Just <sjust@redhat.com>
This commit is contained in:
parent
5390072c8c
commit
79f310ac4d
@ -413,6 +413,12 @@ void ReplicatedPG::wait_for_all_missing(OpRequestRef op)
|
||||
|
||||
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());
|
||||
|
Loading…
Reference in New Issue
Block a user