From cd18ab215f65d22eafab18ca410c993f1dff8469 Mon Sep 17 00:00:00 2001 From: Xingyao Wang Date: Thu, 16 May 2024 23:14:49 +0800 Subject: [PATCH] fix ssh_box error parsing --- opendevin/runtime/docker/ssh_box.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/opendevin/runtime/docker/ssh_box.py b/opendevin/runtime/docker/ssh_box.py index 3609917b8f..1bf0617046 100644 --- a/opendevin/runtime/docker/ssh_box.py +++ b/opendevin/runtime/docker/ssh_box.py @@ -378,7 +378,7 @@ class DockerSSHBox(Sandbox): logger.debug( f'WAITING FOR END OF command output ({bool(output)}): {output}' ) - if output == '': + if output.strip() == '': break command_output += output command_output = command_output.removesuffix('\r\n') @@ -386,17 +386,19 @@ class DockerSSHBox(Sandbox): # get the exit code self.ssh.sendline('echo $?') self.ssh.prompt() - exit_code_str = self.ssh.before + exit_code_str = self.ssh.before.strip() _start_time = time.time() while not exit_code_str: - self.ssh.prompt() - exit_code_str = self.ssh.before + self.ssh.prompt(timeout=1) + exit_code_str = self.ssh.before.strip() logger.debug(f'WAITING FOR exit code: {exit_code_str}') if time.time() - _start_time > timeout: return self._send_interrupt( cmd, command_output, ignore_last_output=True ) - exit_code = int(exit_code_str.strip()) + exit_code = int( + exit_code_str.replace('echo $?', '').replace('\r\n', '').strip() + ) return exit_code, command_output def copy_to(self, host_src: str, sandbox_dest: str, recursive: bool = False):