From: Nitzan Mordechai Date: Tue, 2 Jul 2024 08:31:38 +0000 (+0000) Subject: thrashers: standardize stop and join method names X-Git-Tag: testing/56408~60^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=3a7b0de9ecc66a8c0dbb4304e506d65915d2563d;p=ceph-ci.git thrashers: standardize stop and join method names Thrashers that do not inherit from ThrasherGreenlet previously used a method called do_join, which combined stop and join functionality. To ensure consistency and clarity, we want all thrashers to use separate stop, join, and stop_and_join methods. This commit renames methods and implements missing stop and stop_and_join methods in thrashers that did not inherit from ThrasherGreenlet. Fixes: https://tracker.ceph.com/issues/66698 Signed-off-by: Nitzan Mordechai (cherry picked from commit a035b5a22fb87794e65d112c0d21dcbd28b728ad) --- diff --git a/qa/tasks/ceph_manager.py b/qa/tasks/ceph_manager.py index e24965026c4..01b8a5f36c0 100644 --- a/qa/tasks/ceph_manager.py +++ b/qa/tasks/ceph_manager.py @@ -815,11 +815,16 @@ class OSDThrasher(Thrasher): self.ceph_manager.raw_cluster_cmd('osd', 'primary-affinity', str(osd), str(1)) - def do_join(self): + def stop(self): """ - Break out of this Ceph loop + Stop the thrasher """ self.stopping = True + + def join(self): + """ + Break out of this Ceph loop + """ self.thread.get() if self.sighup_delay: self.log("joining the do_sighup greenlet") @@ -834,6 +839,13 @@ class OSDThrasher(Thrasher): self.log("joining the do_noscrub_toggle greenlet") self.noscrub_toggle_thread.join() + def stop_and_join(self): + """ + Stop and join the thrasher + """ + self.stop() + return self.join() + def grow_pool(self): """ Increase the size of the pool diff --git a/qa/tasks/mon_thrash.py b/qa/tasks/mon_thrash.py index 30a7555b55a..df446d06a3a 100644 --- a/qa/tasks/mon_thrash.py +++ b/qa/tasks/mon_thrash.py @@ -149,13 +149,26 @@ class MonitorThrasher(Thrasher): """ self.logger.info(x) - def do_join(self): + def stop(self): + """ + Stop the thrashing process. + """ + self.stopping = True + + def join(self): """ Break out of this processes thrashing loop. """ self.stopping = True self.thread.get() + def stop_and_join(self): + """ + Stop the thrashing process and join the thread. + """ + self.stop() + return self.join() + def should_thrash_store(self): """ If allowed, indicate that we should thrash a certain percentage of @@ -415,6 +428,6 @@ def task(ctx, config): yield finally: log.info('joining mon_thrasher') - thrash_proc.do_join() + thrash_proc.stop_and_join() mons = _get_mons(ctx) manager.wait_for_mon_quorum_size(len(mons)) diff --git a/qa/tasks/scrub.py b/qa/tasks/scrub.py index ddc1a9164cf..74a2fcd2b20 100644 --- a/qa/tasks/scrub.py +++ b/qa/tasks/scrub.py @@ -59,7 +59,7 @@ def task(ctx, config): yield finally: log.info('joining scrub') - scrub_proc.do_join() + scrub_proc.stop_and_join() class Scrubber: """ @@ -91,11 +91,19 @@ class Scrubber: self.thread = gevent.spawn(self.do_scrub) - def do_join(self): - """Scrubbing thread finished""" + def stop(self): + """Stop scrubbing""" self.stopping = True + + def join(self): + """Scrubbing thread finished""" self.thread.get() + def stop_and_join(self): + """Stop scrubbing thread""" + self.stop() + return self.join() + def do_scrub(self): """Perform the scrub operation""" frequency = self.config.get("frequency", 30) diff --git a/qa/tasks/thrasher.py b/qa/tasks/thrasher.py index 0ea1bf0ee9b..6a6eca92860 100644 --- a/qa/tasks/thrasher.py +++ b/qa/tasks/thrasher.py @@ -1,6 +1,8 @@ """ Thrasher base class """ + + class Thrasher(object): def __init__(self): @@ -13,3 +15,6 @@ class Thrasher(object): def set_thrasher_exception(self, e): self._exception = e + + def stop(self): + raise NotImplementedError("Subclasses didn't implement this method.") diff --git a/qa/tasks/thrashosds.py b/qa/tasks/thrashosds.py index aa7ec437a60..68103350b3f 100644 --- a/qa/tasks/thrashosds.py +++ b/qa/tasks/thrashosds.py @@ -211,7 +211,7 @@ def task(ctx, config): yield finally: log.info('joining thrashosds') - thrash_proc.do_join() + thrash_proc.stop_and_join() cluster_manager.wait_for_all_osds_up() cluster_manager.flush_all_pg_stats() cluster_manager.wait_for_recovery(config.get('timeout', 360))