diff --git a/labgrid/driver/sshdriver.py b/labgrid/driver/sshdriver.py index 3ad6fafa53..a02c9ed36e 100644 --- a/labgrid/driver/sshdriver.py +++ b/labgrid/driver/sshdriver.py @@ -136,9 +136,8 @@ def _start_own_master_once(self, timeout): try: subprocess_timeout = timeout + 5 - return_value = self.process.wait(timeout=subprocess_timeout) - if return_value != 0: - stdout, _ = self.process.communicate(timeout=subprocess_timeout) + stdout, _ = self.process.communicate(timeout=subprocess_timeout) + if self.process.returncode != 0: stdout = stdout.split(b"\n") for line in stdout: self.logger.warning("ssh: %s", line.rstrip().decode(encoding="utf-8", errors="replace")) @@ -159,8 +158,10 @@ def _start_own_master_once(self, timeout): stdout=stdout, ) except subprocess.TimeoutExpired: + self.process.kill() + stdout, _ = self.process.communicate() raise ExecutionError( - f"Subprocess timed out [{subprocess_timeout}s] while executing {args}", + f"Subprocess timed out [{subprocess_timeout}s] while executing {args}: {stdout}", ) finally: if self.networkservice.password and os.path.exists(pass_file):