]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
thrashers: standardize stop and join method names 59193/head
authorNitzan Mordechai <nmordech@redhat.com>
Tue, 2 Jul 2024 08:31:38 +0000 (08:31 +0000)
committerNitzan Mordechai <nmordech@redhat.com>
Mon, 3 Feb 2025 10:34:08 +0000 (10:34 +0000)
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 <nmordech@redhat.com>
(cherry picked from commit a035b5a22fb87794e65d112c0d21dcbd28b728ad)

qa/tasks/ceph_manager.py
qa/tasks/mon_thrash.py
qa/tasks/scrub.py
qa/tasks/thrasher.py
qa/tasks/thrashosds.py

index e24965026c4b95d0f4af52f6b6b622b1b3b7f5d4..01b8a5f36c06ba67aa7de988937b0a0456e7f2f9 100644 (file)
@@ -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
index 30a7555b55a41c7537123136219cdbe494aa8b33..df446d06a3a7407b64f9af0d958462e3c9b252c0 100644 (file)
@@ -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))
index ddc1a9164cfc825cd5ba9e35cc4c1eb088baadac..74a2fcd2b2020ad04806df4fdae3974a171c4716 100644 (file)
@@ -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)
index 0ea1bf0ee9bc4d9001850eb8e528464ae99d238f..6a6eca92860e1f48371b9112d41b3d699a8dcbfa 100644 (file)
@@ -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.")
index aa7ec437a60015702253dbaa9ed094dd03b9eb67..68103350b3f681ab6bd1078a62514703cde5b21a 100644 (file)
@@ -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))