continue;
val = i->second.last_clean;
break;
+ case STUCK_DEGRADED:
+ if ((i->second.state & PG_STATE_DEGRADED) == 0)
+ continue;
+ val = i->second.last_undegraded;
+ break;
case STUCK_STALE:
if ((i->second.state & PG_STATE_STALE) == 0)
continue;
since = p->second.last_clean;
whatname = "unclean";
break;
+ case PGMap::STUCK_DEGRADED:
+ since = p->second.last_undegraded;
+ whatname = "degraded";
+ break;
case PGMap::STUCK_STALE:
since = p->second.last_unstale;
whatname = "stale";
}
stuck_pgs.clear();
+ pg_map.get_stuck_stats(PGMap::STUCK_DEGRADED, cutoff, stuck_pgs);
+ if (!stuck_pgs.empty()) {
+ note["stuck degraded"] = stuck_pgs.size();
+ if (detail)
+ note_stuck_detail(PGMap::STUCK_DEGRADED, stuck_pgs, detail);
+ }
+ stuck_pgs.clear();
+
pg_map.get_stuck_stats(PGMap::STUCK_STALE, cutoff, stuck_pgs);
if (!stuck_pgs.empty()) {
note["stuck stale"] = stuck_pgs.size();
stuck_type = PGMap::STUCK_INACTIVE;
else if (type == "unclean")
stuck_type = PGMap::STUCK_UNCLEAN;
+ else if (type == "degraded")
+ stuck_type = PGMap::STUCK_DEGRADED;
else if (type == "stale")
stuck_type = PGMap::STUCK_STALE;
else {