]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
PG: only complete replicas should count toward min_size 1589/head
authorSage Weil <sage@inktank.com>
Tue, 1 Apr 2014 23:01:28 +0000 (16:01 -0700)
committerSage Weil <sage@inktank.com>
Tue, 1 Apr 2014 23:01:32 +0000 (16:01 -0700)
Backport: emperor,dumpling,cuttlefish
Fixes: #7805
Signed-off-by: Samuel Just <sam.just@inktank.com>
Signed-off-by: Sage Weil <sage@inktank.com>
src/osd/PG.cc

index 66329b3442d9f20e946abad7b24ea9c49220876b..0f6a597b56ace5a4c357732881ca7a07a3b4f2e4 100644 (file)
@@ -1011,7 +1011,20 @@ bool PG::choose_acting(int& newest_update_osd)
     return false;
   }
 
-  if (want.size() < pool.info.min_size) {
+  unsigned complete = 0;
+  for (vector<int>::iterator i = want.begin();
+       i != want.end();
+       ++i) {
+    if (*i == osd->whoami) {
+      if (!info.is_incomplete())
+       ++complete;
+    } else {
+      assert(peer_info.count(*i));
+      if (!peer_info[*i].is_incomplete())
+       ++complete;
+    }
+  }
+  if (complete < pool.info.min_size) {
     want_acting.clear();
     return false;
   }