tests: Topotests fix for deleting wrong pidfile

Fixes killRouterDaemons() function which occasionally deleted the wrong
pidfile.

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
This commit is contained in:
Martin Winter 2023-01-30 23:26:48 +01:00
parent 65a78243d8
commit 6c5045ce4f
No known key found for this signature in database
GPG Key ID: 05A4ECF8C0102306

View File

@ -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):