From 46f81efbeb24b2554641f82c45f36867634e23a3 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 3 Mar 2017 08:45:10 -0600 Subject: [PATCH] qa/tasks/thrashosds: chance_thrash_cluster_full Induce a momentarily full cluster. Signed-off-by: Sage Weil (cherry picked from commit a202b68d18ccf32d9ae2580fecdbbb6ebaed5d30) Conflicts: qa/tasks/ceph_manager.py (trivial) qa/tasks/thrashosds.py (trivial) --- qa/tasks/ceph_manager.py | 13 +++++++++++++ qa/tasks/thrashosds.py | 2 ++ 2 files changed, 15 insertions(+) diff --git a/qa/tasks/ceph_manager.py b/qa/tasks/ceph_manager.py index 7abcd1af55c6..5f2f61885ba5 100644 --- a/qa/tasks/ceph_manager.py +++ b/qa/tasks/ceph_manager.py @@ -114,6 +114,7 @@ class Thrasher: self.minin = self.config.get("min_in", 3) self.chance_move_pg = self.config.get('chance_move_pg', 1.0) self.sighup_delay = self.config.get('sighup_delay') + self.chance_thrash_cluster_full = self.config.get('chance_thrash_cluster_full', .05) num_osds = self.in_osds + self.out_osds self.max_pgs = self.config.get("max_pgs_per_pool_osd", 1200) * num_osds @@ -456,6 +457,16 @@ class Thrasher: self.ceph_manager.raw_cluster_cmd('osd', 'primary-affinity', str(osd), str(pa)) + def thrash_cluster_full(self): + """ + Set and unset cluster full condition + """ + self.log('Setting full ratio to .001') + self.ceph_manager.raw_cluster_cmd('pg', 'set_full_ratio', '.001') + time.sleep(1) + self.log('Setting full ratio back to .95') + self.ceph_manager.raw_cluster_cmd('pg', 'set_full_ratio', '.95') + def all_up(self): """ Make sure all osds are up and not out. @@ -659,6 +670,8 @@ class Thrasher: chance_test_min_size,)) actions.append((self.test_backfill_full, chance_test_backfill_full,)) + if self.chance_thrash_cluster_full > 0: + actions.append((self.thrash_cluster_full, self.chance_thrash_cluster_full,)) for key in ['heartbeat_inject_failure', 'filestore_inject_stall']: for scenario in [ (lambda: diff --git a/qa/tasks/thrashosds.py b/qa/tasks/thrashosds.py index fb1defbb7bf1..0624503e34fb 100644 --- a/qa/tasks/thrashosds.py +++ b/qa/tasks/thrashosds.py @@ -102,6 +102,8 @@ def task(ctx, config): ceph_objectstore_tool: (true) whether to export/import a pg while an osd is down chance_move_pg: (1.0) chance of moving a pg if more than 1 osd is down (default 100%) + chance_thrash_cluster_full: .05 + example: tasks: -- 2.47.3