misplaced needs better calculation
6 OSD cluster with limited pg log to get backfill.
ceph osd pool create test 1 1
cceph osd pool set test size 1
Create 10000 objects (notice pg on osd 1)
ceph osd out osd.1
ceph osd pool set test size 4
In this misplaced goes down too fast and reaches zero before all backfills have happened.
After the fix misplaced and degraded move towards zero at the same rate. Notice this snapshot of what was happening. At this point we've backfilled 8000 of the objects on all 4 OSDs. Notice that degraded doesn't include one entire backfill OSD because OSD 1 still has all the objects. So with 2000 left on 3 OSDs, we get 6000 degraded. So, of the misplaced on OSD1 we have 2000 more to go before every object is accounted for.
PG_STAT OBJECTS MISSING_ON_PRIMARY DEGRADED MISPLACED UNFOUND BYTES LOG DISK_LOG STATE UP UP_PRIMARY ACTING ACTING_PRIMARY
1.0 10000 0 6000 2000 0 0 100 100 active+undersized+degraded+remapped+backfilling ... [0,2,4,3] 0  1 ...