*this
).then_interruptible(
[this, pg]() mutable {
- return do_recover_missing(pg, m->get_hobj());
+ if (pg->is_primary()) {
+ return do_recover_missing(pg, m->get_hobj());
+ } else {
+ logger().debug("process_op: Skipping do_recover_missing"
+ "on non primary pg");
+ return interruptor::now();
+ }
}).then_interruptible([this, pg, &ihref]() mutable {
return pg->already_complete(m->get_reqid()).then_interruptible(
[this, pg, &ihref](auto completed) mutable
Ref<PG>& pg, const hobject_t& soid)
{
eversion_t ver;
+ assert(pg->is_primary());
logger().debug("{} check for recovery, {}", __func__, soid);
if (!pg->is_unreadable_object(soid, &ver) &&
!pg->is_degraded_or_backfilling_object(soid)) {