nixos/test-driver: fix resource cleanup of vlan/qmp objects (#349085)

This commit is contained in:
Jacek Galowicz
2024-10-16 22:01:36 +02:00
committed by GitHub
4 changed files with 15 additions and 3 deletions
+10 -1
View File
@@ -99,7 +99,16 @@ class Driver:
with self.logger.nested("cleanup"):
self.race_timer.cancel()
for machine in self.machines:
machine.release()
try:
machine.release()
except Exception as e:
self.logger.error(f"Error during cleanup of {machine.name}: {e}")
for vlan in self.vlans:
try:
vlan.stop()
except Exception as e:
self.logger.error(f"Error during cleanup of vlan{vlan.nr}: {e}")
def subtest(self, name: str) -> Iterator[None]:
"""Group logs under a given test name"""
@@ -1234,6 +1234,9 @@ class Machine:
self.monitor.close()
self.serial_thread.join()
if self.qmp_client:
self.qmp_client.close()
def run_callbacks(self) -> None:
for callback in self.callbacks:
callback()
+1 -1
View File
@@ -49,7 +49,7 @@ class QMPSession:
sock.connect(str(path))
return cls(sock)
def __del__(self) -> None:
def close(self) -> None:
self.sock.close()
def _wait_for_new_result(self) -> dict[str, str]:
+1 -1
View File
@@ -59,7 +59,7 @@ class VLan:
self.logger.info(f"running vlan (pid {self.pid}; ctl {self.socket_dir})")
def __del__(self) -> None:
def stop(self) -> None:
self.logger.info(f"kill vlan (pid {self.pid})")
self.fd.close()
self.process.terminate()