From: Kefu Chai Date: Sun, 19 Feb 2017 05:10:44 +0000 (+0800) Subject: test: Thrasher: do not update pools_to_fix_pgp_num if nothing happens X-Git-Tag: v11.2.1~212^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F13757%2Fhead;p=ceph.git test: Thrasher: do not update pools_to_fix_pgp_num if nothing happens 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 (cherry picked from commit c0f0cde399a80cea617c115417e5390a63ec674e) --- diff --git a/qa/tasks/ceph_manager.py b/qa/tasks/ceph_manager.py index 175a82e08cd..2356a315a86 100644 --- a/qa/tasks/ceph_manager.py +++ b/qa/tasks/ceph_manager.py @@ -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): """