From: Kefu Chai Date: Sun, 8 Mar 2020 05:39:59 +0000 (+0800) Subject: qa/tasks/ceph_manager: capture stderr for COT X-Git-Tag: v15.1.1~52^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=78308f7207a7129aaba01ea8c27e2f563d688318;p=ceph-ci.git qa/tasks/ceph_manager: capture stderr for COT as we are expecting the error message written to stderr, and we need to check for the error messages in it. this change addresses the regression introduced by 204ceee156cbb8a20bdf56efb0cd0610ee4c107e Fixes: https://tracker.ceph.com/issues/44500 Signed-off-by: Kefu Chai --- diff --git a/qa/tasks/ceph_manager.py b/qa/tasks/ceph_manager.py index aea091f65cf..68f1c84d877 100644 --- a/qa/tasks/ceph_manager.py +++ b/qa/tasks/ceph_manager.py @@ -306,7 +306,8 @@ class OSDThrasher(Thrasher): ]) if proc.exitstatus == 0: break - elif proc.exitstatus == 1 and proc.stderr == "OSD has the store locked": + elif (proc.exitstatus == 1 and + six.ensure_str(proc.stderr.getvalue()) == "OSD has the store locked"): continue else: raise Exception("ceph-objectstore-tool: " @@ -418,7 +419,7 @@ class OSDThrasher(Thrasher): ]) if proc.exitstatus == 1: bogosity = "The OSD you are using is older than the exported PG" - if bogosity in proc.stderr.getvalue(): + if bogosity in six.ensure_str(proc.stderr.getvalue()): self.log("OSD older than exported PG" "...ignored") elif proc.exitstatus == 10: @@ -453,8 +454,10 @@ class OSDThrasher(Thrasher): '--journal-path', JPATH.format(id=imp_osd), ]) + " --op apply-layout-settings --pool " + pool).format(id=osd) - output = imp_remote.sh(cmd, wait=True, check_status=False) - if 'Couldn\'t find pool' in output: + proc = imp_remote.run(args=cmd, + wait=True, check_status=False, + stderr=BytesIO) + if 'Couldn\'t find pool' in six.ensure_str(proc.stderr.getvalue()): continue if proc.exitstatus: raise Exception("ceph-objectstore-tool apply-layout-settings"