From c0f0cde399a80cea617c115417e5390a63ec674e Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sun, 19 Feb 2017 13:10:44 +0800 Subject: [PATCH] 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 --- qa/tasks/ceph_manager.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/qa/tasks/ceph_manager.py b/qa/tasks/ceph_manager.py index 3c693331fa2..ebad4a933a6 100644 --- a/qa/tasks/ceph_manager.py +++ b/qa/tasks/ceph_manager.py @@ -531,10 +531,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): @@ -544,9 +543,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): """ @@ -1536,13 +1534,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): """ @@ -1552,8 +1551,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): """