From 6c5045ce4fe6b4b015474155fe0ff51621d8e12a Mon Sep 17 00:00:00 2001 From: Martin Winter Date: Mon, 30 Jan 2023 23:26:48 +0100 Subject: [PATCH] tests: Topotests fix for deleting wrong pidfile Fixes killRouterDaemons() function which occasionally deleted the wrong pidfile. Signed-off-by: Martin Winter --- tests/topotests/lib/topotest.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/topotests/lib/topotest.py b/tests/topotests/lib/topotest.py index 61cf16944f..7f68b4ccf3 100644 --- a/tests/topotests/lib/topotest.py +++ b/tests/topotests/lib/topotest.py @@ -1888,15 +1888,16 @@ class Router(Node): # Exclude empty string at end of list for d in dmns[:-1]: if re.search(r"%s" % daemon, d): - daemonpid = self.cmd("cat %s" % d.rstrip()).rstrip() + daemonpidfile = d.rstrip() + daemonpid = self.cmd("cat %s" % daemonpidfile).rstrip() if daemonpid.isdigit() and pid_exists(int(daemonpid)): logger.info( "{}: killing {}".format( self.name, - os.path.basename(d.rstrip().rsplit(".", 1)[0]), + os.path.basename(daemonpidfile.rsplit(".", 1)[0]), ) ) - self.cmd("kill -9 %s" % daemonpid) + os.kill(int(daemonpid), signal.SIGKILL) if pid_exists(int(daemonpid)): numRunning += 1 while wait and numRunning > 0: @@ -1922,12 +1923,12 @@ class Router(Node): ), ) ) - self.cmd("kill -9 %s" % daemonpid) + os.kill(int(daemonpid), signal.SIGKILL) if daemonpid.isdigit() and not pid_exists( int(daemonpid) ): numRunning -= 1 - self.cmd("rm -- {}".format(d.rstrip())) + self.cmd("rm -- {}".format(daemonpidfile)) if wait: errors = self.checkRouterCores(reportOnce=True) if self.checkRouterVersion("<", minErrorVersion): -- 2.39.5