On some systems when dpdk test is executed with make test command autotest_runner crashes in first_cpu_on_node. This happens when list of available cpus contains something that is not a cpu as first element. Fixed by removing all non-cpu values from list of available cpus.
Bugzilla ID: 253 Fixes: 22dcd9a4d90f ("test: parallelize unit tests") Cc: anatoly.bura...@intel.com Cc: sta...@dpdk.org Signed-off-by: Herakliusz Lipiec <herakliusz.lip...@intel.com> --- app/test/autotest_runner.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/test/autotest_runner.py b/app/test/autotest_runner.py index b72716e1e..7aece8905 100644 --- a/app/test/autotest_runner.py +++ b/app/test/autotest_runner.py @@ -43,11 +43,10 @@ def get_numa_nodes(): # find first (or any, really) CPU on a particular node, will be used to spread # processes around NUMA nodes to avoid exhausting memory on particular node def first_cpu_on_node(node_nr): - cpu_path = glob.glob("/sys/devices/system/node/node%d/cpu*" % node_nr)[0] - cpu_name = os.path.basename(cpu_path) - m = re.match(r"cpu(\d+)", cpu_name) - return int(m.group(1)) - + cpu_path = glob.glob("/sys/devices/system/node/node%d/cpu*" % node_nr) + r = re.compile(r"cpu(\d+)") + cpu_name = filter(None ,map(r.match, map(os.path.basename, cpu_path))) + return int(next(iter(cpu_name)).group(1)) pool_child = None # per-process child -- 2.17.2