]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: an interval can't go readwrite if its acting is empty
authorSage Weil <sage@inktank.com>
Thu, 21 Feb 2013 19:15:58 +0000 (11:15 -0800)
committerSage Weil <sage@inktank.com>
Sat, 23 Feb 2013 16:34:07 +0000 (08:34 -0800)
Let's not forget that min_size can be zero.

Fixes: #4159
Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit 4277265d99647c9fe950ba627e5d86234cfd70a9)

src/osd/osd_types.cc

index c3827a4680b93f9acae7c9c025d5be9a2d803a5d..135f1fb3130a5e0a173c7e7ddec70e309ba21b07 100644 (file)
@@ -1597,7 +1597,8 @@ bool pg_interval_t::check_new_interval(
     i.acting = old_acting;
     i.up = old_up;
 
-    if (i.acting.size() >=
+    if (!i.acting.empty() &&
+       i.acting.size() >=
        osdmap->get_pools().find(pool_id)->second.min_size) {
       if (lastmap->get_up_thru(i.acting[0]) >= i.first &&
          lastmap->get_up_from(i.acting[0]) <= i.first) {