From b0997a590aadd85c817c50ba92d61e1b28972523 Mon Sep 17 00:00:00 2001 From: Karol Latecki Date: Thu, 21 Jul 2022 07:18:24 +0000 Subject: [PATCH] scripts/nvmf_perf: kill process after timeout If SIGTERM does not work - use SIGKILL and clean up any remaining socket files. Change-Id: I1a4f2e49a8a43f3eed19e09e16d4ee3420cd31f7 Signed-off-by: Karol Latecki Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13739 Tested-by: SPDK CI Jenkins Reviewed-by: Tomasz Zawadzki Reviewed-by: Jim Harris Reviewed-by: Krzysztof Karas Reviewed-by: Pawel Piatek Reviewed-by: Michal Berger --- scripts/perf/nvmf/run_nvmf.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/scripts/perf/nvmf/run_nvmf.py b/scripts/perf/nvmf/run_nvmf.py index 71f172d1a..4abb2804f 100755 --- a/scripts/perf/nvmf/run_nvmf.py +++ b/scripts/perf/nvmf/run_nvmf.py @@ -1275,11 +1275,19 @@ class SPDKTarget(Target): if hasattr(self, "nvmf_proc"): try: self.nvmf_proc.terminate() - self.nvmf_proc.wait() + self.nvmf_proc.wait(timeout=30) except Exception as e: + self.log_print("Failed to terminate SPDK Target process. Sending SIGKILL.") self.log_print(e) self.nvmf_proc.kill() self.nvmf_proc.communicate() + # Try to clean up RPC socket files if they were not removed + # because of using 'kill' + try: + os.remove("/var/tmp/spdk.sock") + os.remove("/var/tmp/spdk.sock.lock") + except FileNotFoundError: + pass class KernelInitiator(Initiator):