From patchwork Wed Jun 12 14:46:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Herakliusz Lipiec X-Patchwork-Id: 54735 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AA1F41D08C; Wed, 12 Jun 2019 16:46:00 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 2AD851D085; Wed, 12 Jun 2019 16:45:58 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Jun 2019 07:45:57 -0700 X-ExtLoop1: 1 Received: from silpixa00399499.ir.intel.com (HELO silpixa00399499.ger.corp.intel.com) ([10.237.222.58]) by orsmga001.jf.intel.com with ESMTP; 12 Jun 2019 07:45:55 -0700 From: Herakliusz Lipiec To: Cc: dev@dpdk.org, Herakliusz Lipiec , anatoly.burakov@intel.com, stable@dpdk.org Date: Wed, 12 Jun 2019 15:46:47 +0100 Message-Id: <20190612144647.26850-1-herakliusz.lipiec@intel.com> X-Mailer: git-send-email 2.17.2 In-Reply-To: <20190612133323.43530-1-herakliusz.lipiec@intel.com> References: <20190612133323.43530-1-herakliusz.lipiec@intel.com> Subject: [dpdk-dev] [PATCH v2] app/test: fix autotest_runner crash X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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.burakov@intel.com Cc: stable@dpdk.org Signed-off-by: Herakliusz Lipiec Reviewed-by: Anatoly Burakov --- app/test/autotest_runner.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/test/autotest_runner.py b/app/test/autotest_runner.py index b72716e1e..95e74c760 100644 --- a/app/test/autotest_runner.py +++ b/app/test/autotest_runner.py @@ -43,9 +43,16 @@ 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) + 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) + ) + ) + # for compatibility between python 3 and 2 we need to make interable out + # of filter return as it returns list in python 2 and a generator in 3 + m = next(iter(cpu_name)) return int(m.group(1))