X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fqa%2Ftasks%2Fmds_thrash.py;h=1fcc9fc6a4890942d6211bf9e77ca0a04616c99a;hb=224ce89bce8186937e77bdbda572a650953f8c23;hp=8714967b95229880835be0acdcbf16d707db2a61;hpb=7c673caec407dd16107e56e4b51a6d00f021315c;p=ceph.git diff --git a/ceph/qa/tasks/mds_thrash.py b/ceph/qa/tasks/mds_thrash.py index 8714967b9..1fcc9fc6a 100644 --- a/ceph/qa/tasks/mds_thrash.py +++ b/ceph/qa/tasks/mds_thrash.py @@ -360,15 +360,17 @@ class MDSThrasher(Greenlet): self.fs.set_max_mds(new_max_mds) stats['max_mds'] += 1 - # Now randomly deactivate mds if we shrank - # TODO: it's desirable to deactivate in order. Make config to do random. - targets = filter(lambda r: r['rank'] > 0, status.get_ranks(self.fs.id)) # can't deactivate 0 - for target in random.sample(targets, max(0, max_mds-new_max_mds)): - self.log("deactivating rank %d" % target['rank']) - self.fs.deactivate(target['rank']) - stats['deactivate'] += 1 - - status = self.wait_for_stable()[0] + targets = filter(lambda r: r['rank'] >= new_max_mds, status.get_ranks(self.fs.id)) + if len(targets) > 0: + # deactivate mds in decending order + targets = sorted(targets, key=lambda r: r['rank'], reverse=True) + for target in targets: + self.log("deactivating rank %d" % target['rank']) + self.fs.deactivate(target['rank']) + stats['deactivate'] += 1 + status = self.wait_for_stable()[0] + else: + status = self.wait_for_stable()[0] count = 0 for info in status.get_ranks(self.fs.id):