From 5b7c97c7198cce25b8e0cba3c3549e42bc300aed Mon Sep 17 00:00:00 2001 From: Kamoltat Sirivadhna Date: Wed, 3 Aug 2022 21:00:06 +0000 Subject: [PATCH] task/internal/__init__.py: improve core program extraction Problem: The previous technique for extracting the program name of the coredump file doesn't deal with the case where there is no white space after program name e.g., ``SVR4-style, from 'ceph_test_rados_api_io', real uid: 1000`` here we will get an error when we reach the part where we ``remote.sh(['which', dump_program]).rstrip()``. Solution: Use regex to extract first occurence of the word that is in the format ``from ''``. Signed-off-by: Kamoltat Sirivadhna --- teuthology/task/internal/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/teuthology/task/internal/__init__.py b/teuthology/task/internal/__init__.py index 041964d38..0fb5b203d 100644 --- a/teuthology/task/internal/__init__.py +++ b/teuthology/task/internal/__init__.py @@ -13,7 +13,7 @@ import time import yaml import subprocess import tempfile - +import re import humanfriendly import teuthology.lock.ops @@ -335,7 +335,7 @@ def fetch_binaries_for_coredumps(path, remote): log.error(e) continue try: - dump_program = dump_out.split("from '")[1].split(' ')[0] + dump_program = re.findall("from '([^']+)'", dump_out)[0] log.info(f' dump_program: {dump_program}') except Exception as e: log.info("core doesn't have the desired format, moving on ...") -- 2.47.3