osd: add all backfill osd to backfill_targets
if pg_log.get_tail() > pi.last_update return true, it is possible that the peer is not in backfill_targets.
I am not sure whether it is right or not.
#1 Updated by Samuel Just about 7 years ago
I don't understand how this can happen. When we start backfilling, we set pi.last_update to info.last_update (as part of activate). I think this patch is wrong and the bug you observed was something else. Please explain in more detail what is going on here.
#2 Updated by Xinze Chi about 7 years ago
For pg 1.7d
In timestamp 2016-02-11 23:40:51.235507 osd.2 is auth_log_shard and it's log_tail is 191'185, the last_update of osd.0 is 205'198, so the osd.0 is not selected as backfil_targets
But in 2016-02-11 23:40:51.238756 aften proc_replica_log, the last_update of osd.0 is down to 173'179, the last_update of osd.0(173'179 ) < the log_tail of osd.2(191'185)
so in PG::activate, the osd.0 is should be backfill, but is not in backfill_targets. so needs_backfill would return false, pg is not go to backfill state.
I upload some logs of osd.2
Please point out my mistakes if exits.
#3 Updated by Xinze Chi about 7 years ago
- File osd.2.gz added
#4 Updated by Samuel Just about 7 years ago
Hmm, I don't have 33ff281d60c825adf1889eb67c4fed280ba0ea6f. Can you push a branch corresponding to that commit?
#5 Updated by Sage Weil about 7 years ago
- Status changed from New to Need More Info
#6 Updated by Sage Weil about 7 years ago
- Assignee set to Samuel Just
#7 Updated by Samuel Just almost 7 years ago
- Status changed from Need More Info to Can't reproduce
I am closing this for now. Feel free to reopen with more information.