Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 13 additions & 5 deletions tests/framework/microvm.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,13 +333,21 @@ def kill(self):
# https://github.com/firecracker-microvm/firecracker/pull/4442/commits/d63eb7a65ffaaae0409d15ed55d99ecbd29bc572

# filter ps results for the jailer's unique id
_, stdout, stderr = utils.check_output(
f"ps ax -o cmd -ww | grep {self.jailer.jailer_id}"
_, stdout, stderr = utils.run_cmd(
f"ps ax -o pid,cmd -ww | grep {self.jailer.jailer_id}"
)

offenders = []
for proc in stdout.splitlines():
_, cmd = proc.lower().split(maxsplit=1)
if "firecracker" in proc and not cmd.startswith("screen"):
offenders.append(proc)

# make sure firecracker was killed
assert (
stderr == "" and "firecracker" not in stdout
), f"Firecracker reported its pid {self.firecracker_pid}, which was killed, but there still exist processes using the supposedly dead Firecracker's jailer_id: {stdout}"
assert not stderr and not offenders, (
f"Firecracker reported its pid {self.firecracker_pid}, which was killed, but there still exist processes using the supposedly dead Firecracker's jailer_id: \n"
+ "\n".join(offenders)
)

if self.uffd_handler and self.uffd_handler.is_running():
self.uffd_handler.kill()
Expand Down
1 change: 1 addition & 0 deletions tests/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,5 @@ disable = [
"duplicate-code",
"too-many-positional-arguments",
"too-few-public-methods",
"too-many-branches",
]