From 78308f7207a7129aaba01ea8c27e2f563d688318 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sun, 8 Mar 2020 13:39:59 +0800 Subject: [PATCH] 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 --- qa/tasks/ceph_manager.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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" -- 2.39.5