summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-02-21 15:31:36 -0800
committerSamuel Just <sam.just@inktank.com>2013-03-20 15:17:22 -0700
commitac914834ba4fb0e4770f63c60713be7a48aa3fa1 (patch)
tree9c3c2731621b10b0ae16858cb4b45eef2558305c
parent7f39704b0903fb11e3f1e102599bf0c540f93623 (diff)
downloadceph-ac914834ba4fb0e4770f63c60713be7a48aa3fa1.tar.gz
PG::proc_replica_log: adjust oinfo.last_complete based on omissing
Otherwise, search_for_missing may neglect to check the missing set for some objects assuming that if the need version is prior to last_complete, the replica must have it. Fixes: #4994 Signed-off-by: Samuel Just <sam.just@inktank.com> (cherry picked from commit ce7ffc34408bf32c66dc07e6f42d54b7ec489d41)
-rw-r--r--src/osd/PG.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/osd/PG.cc b/src/osd/PG.cc
index 2f1d77cb602..27080b5ac69 100644
--- a/src/osd/PG.cc
+++ b/src/osd/PG.cc
@@ -270,6 +270,8 @@ void PG::proc_replica_log(ObjectStore::Transaction& t,
oinfo.last_update = lu;
if (lu < oinfo.last_complete)
oinfo.last_complete = lu;
+ if (omissing.have_missing())
+ oinfo.last_complete = missing.missing[missing.rmissing.begin()->second].need;
}
peer_info[from] = oinfo;