Hi, Another question is about PG::do_peer. I wonder if we should modify the condition of inferring no missing as follows: diff --git a/src/osd/PG.cc b/src/osd/PG.cc index e634296..4ce3336 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -1632,7 +1632,7 @@ void PG::do_peer(ObjectStore::Transaction& t, list<Context*>& tfin, if (pi.is_empty()) continue; if (peer_missing.find(peer) == peer_missing.end()) { - if (pi.last_update == pi.last_complete) { + if (pi.last_update == pi.last_complete && pi.last_update >= log.tail) { dout(10) << " infering no missing (last_update==last_complete) for osd" << peer << dendl; peer_missing[peer].num_missing(); // just create the entry. search_for_missing(peer_info[peer], &peer_missing[peer], peer); If pi.last_update < log.tail, we cannot know if the peer has any missing. Shouldn't we try to pull the peer's missing+backlog first before inferring no missing and go ahead activating the pg? Sorry for separating my questions into multiple emails. -- Henry Chang -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html