]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
qa/tasks/ceph_manager: thrash - add trim stale osdmaps 53227/head
authorMatan Breizman <mbreizma@redhat.com>
Thu, 26 Oct 2023 10:18:59 +0000 (10:18 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Mon, 18 Dec 2023 12:56:24 +0000 (12:56 +0000)
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
qa/tasks/ceph_manager.py

index 86b57028ee2703a2a33da476c46af8fcea3aa1bd..0b6170ff5b0e7606b9172c36b828139ba6463112 100644 (file)
@@ -235,6 +235,7 @@ class OSDThrasher(Thrasher):
         self.random_eio = self.config.get('random_eio')
         self.chance_force_recovery = self.config.get('chance_force_recovery', 0.3)
         self.chance_reset_purged_snaps_last = self.config.get('chance_reset_purged_snaps_last', 0.3)
+        self.chance_trim_stale_osdmaps = self.config.get('chance_trim_stale_osdmaps', 0.3)
 
         num_osds = self.in_osds + self.out_osds
         self.max_pgs = self.config.get("max_pgs_per_pool_osd", 1200) * len(num_osds)
@@ -793,6 +794,19 @@ class OSDThrasher(Thrasher):
             except CommandFailedError:
                 self.log('Failed to reset_purged_snaps_last, ignoring')
 
+    def trim_stale_osdmaps(self):
+       """
+       Trim stale osdmaps
+       """
+       self.log('trim_stale_osdmaps')
+       for osd in self.in_osds:
+           try:
+               self.ceph_manager.raw_cluster_cmd(
+               'tell', "osd.%s" % (str(osd)),
+               'trim stale osdmaps')
+           except CommandFailedError:
+               self.log('Failed to trim stale osdmaps, ignoring')
+
     def all_up(self):
         """
         Make sure all osds are up and not out.
@@ -1245,6 +1259,8 @@ class OSDThrasher(Thrasher):
             actions.append((self.force_cancel_recovery, self.chance_force_recovery))
         if self.chance_reset_purged_snaps_last > 0:
             actions.append((self.reset_purged_snaps_last, self.chance_reset_purged_snaps_last))
+        if self.chance_trim_stale_osdmaps > 0:
+            actions.append((self.trim_stale_osdmaps, self.chance_trim_stale_osdmaps))
 
         for key in ['heartbeat_inject_failure', 'filestore_inject_stall']:
             for scenario in [