]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
qa: do not wait for down/out osd for pg convergence 18957/head
authorKefu Chai <kchai@redhat.com>
Wed, 8 Nov 2017 06:13:54 +0000 (14:13 +0800)
committerKefu Chai <kchai@redhat.com>
Thu, 16 Nov 2017 02:10:50 +0000 (10:10 +0800)
that osd is not invovlved in the PG state changes.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 7f549af459b40c5bb51a24a3a443ed7a7116915e)

qa/tasks/ceph_manager.py

index be1e7be4140637a3c6ad1275b78d8a1e2c5a4fe7..004a8f495f83e027347ae6574d6234dd82deffb3 100644 (file)
@@ -2323,6 +2323,8 @@ class CephManager:
     def wait_till_pg_convergence(self, timeout=None):
         start = time.time()
         old_stats = None
+        active_osds = [osd['osd'] for osd in self.get_osd_dump()
+                       if osd['in'] and osd['up']]
         while True:
             # strictly speaking, no need to wait for mon. but due to the
             # "ms inject socket failures" setting, the osdmap could be delayed,
@@ -2330,7 +2332,7 @@ class CephManager:
             # newly created pools which is not yet known by mgr. so, to make sure
             # the mgr is updated with the latest pg-stats, waiting for mon/mgr is
             # necessary.
-            self.flush_all_pg_stats()
+            self.flush_pg_stats(active_osds)
             new_stats = dict((stat['pgid'], stat['state'])
                              for stat in self.get_pg_stats())
             if old_stats == new_stats: