]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test: Thrasher: do not update pools_to_fix_pgp_num if nothing happens 13757/head
authorKefu Chai <kchai@redhat.com>
Sun, 19 Feb 2017 05:10:44 +0000 (13:10 +0800)
committerSage Weil <sage@redhat.com>
Fri, 3 Mar 2017 00:26:51 +0000 (18:26 -0600)
we should not update pools_to_fix_pgp_num if the pool is not expanded or
the pg_num is not increased due to pgs being created. this prevent us
from fixing the pgp_num after done with thrashing if we actually did
nothing when fixing the pgp_num when thrashing, but we removed the pool
from pools_to_fix_pgp_num after set_pool_pgpnum() returns.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit c0f0cde399a80cea617c115417e5390a63ec674e)

qa/tasks/ceph_manager.py

index 175a82e08cd03d1b9f4838bdf3439a5ee800c65d..2356a315a86f6c92790fed32be601d0a1633ae58 100644 (file)
@@ -515,10 +515,9 @@ class Thrasher:
         pool = self.ceph_manager.get_pool()
         orig_pg_num = self.ceph_manager.get_pool_pg_num(pool)
         self.log("Growing pool %s" % (pool,))
-        self.ceph_manager.expand_pool(pool,
-                                      self.config.get('pool_grow_by', 10),
-                                      self.max_pgs)
-        if orig_pg_num < self.ceph_manager.get_pool_pg_num(pool):
+        if self.ceph_manager.expand_pool(pool,
+                                         self.config.get('pool_grow_by', 10),
+                                         self.max_pgs):
             self.pools_to_fix_pgp_num.add(pool)
 
     def fix_pgp_num(self, pool=None):
@@ -528,9 +527,8 @@ class Thrasher:
         if pool is None:
             pool = self.ceph_manager.get_pool()
         self.log("fixing pg num pool %s" % (pool,))
-        self.ceph_manager.set_pool_pgpnum(pool)
-        if pool in self.pools_to_fix_pgp_num:
-            self.pools_to_fix_pgp_num.remove(pool)
+        if self.ceph_manager.set_pool_pgpnum(pool):
+            self.pools_to_fix_pgp_num.discard(pool)
 
     def test_pool_min_size(self):
         """
@@ -1507,13 +1505,14 @@ class CephManager:
             assert isinstance(by, int)
             assert pool_name in self.pools
             if self.get_num_creating() > 0:
-                return
+                return False
             if (self.pools[pool_name] + by) > max_pgs:
-                return
+                return False
             self.log("increase pool size by %d" % (by,))
             new_pg_num = self.pools[pool_name] + by
             self.set_pool_property(pool_name, "pg_num", new_pg_num)
             self.pools[pool_name] = new_pg_num
+            return True
 
     def set_pool_pgpnum(self, pool_name):
         """
@@ -1523,8 +1522,9 @@ class CephManager:
             assert isinstance(pool_name, basestring)
             assert pool_name in self.pools
             if self.get_num_creating() > 0:
-                return
+                return False
             self.set_pool_property(pool_name, 'pgp_num', self.pools[pool_name])
+            return True
 
     def list_pg_missing(self, pgid):
         """