nixos/test-driver: fix resource cleanup of vlan/qmp objects (#349085)
This commit is contained in:
commit
aca9bcdd68
@ -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()
|
||||
|
@ -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]:
|
||||
|
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user