Browse Source

Fix flushing of unclean objects

This was preventing OSD failover when there were some unclean objects.
Bug was introduced in aa436027c8
non-odp-rdma
Vitaliy Filippov 5 months ago
parent
commit
31b9c683ee
  1. 4
      src/osd_peering.cpp

4
src/osd_peering.cpp

@ -27,9 +27,9 @@ void osd_t::handle_peers()
misplaced_objects += p.second.misplaced_objects.size();
// FIXME: degraded objects may currently include misplaced, too! Report them separately?
degraded_objects += p.second.degraded_objects.size();
if ((p.second.state & (PG_ACTIVE | PG_HAS_UNCLEAN)) == (PG_ACTIVE | PG_HAS_UNCLEAN))
if (p.second.state & PG_HAS_UNCLEAN)
peering_state = peering_state | OSD_FLUSHING_PGS;
else if (p.second.state & PG_ACTIVE)
else if (p.second.state & PG_HAS_DEGRADED)
peering_state = peering_state | OSD_RECOVERING;
}
else

Loading…
Cancel
Save