Merge lp:~abentley/workspace-runner/robust-connections into lp:workspace-runner
Status: | Merged |
---|---|
Merged at revision: | 18 |
Proposed branch: | lp:~abentley/workspace-runner/robust-connections |
Merge into: | lp:workspace-runner |
Diff against target: |
285 lines (+133/-25) 2 files modified
workspace_runner/__init__.py (+60/-21) workspace_runner/tests/__init__.py (+73/-4) |
To merge this branch: | bzr merge lp:~abentley/workspace-runner/robust-connections |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Curtis Hovey (community) | code | Approve | |
Review via email: mp+262986@code.launchpad.net |
Commit message
Make workspace-runner robust against connection failures.
Description of the change
The main purpose of this branch is adding retry support to workspace-runner.
This is done by creating a retry_ssh decorator, and decorating all relevant functions.
It also tries to improve separation of concerns by extracting call_with_input from run_python, and moving run_python back to SSHPrimitives.
Finally, it adds a --verbose option that causes each ssh command to be printed, and retries to be noted.
I experimented with SSH connection sharing, but determined that it does not prevent connection failures. Even after an initial successful connection, subsequent connections could fail with "Received disconnect from 54.165.231.203: 2: fork failed: Resource temporarily unavailable"
Thank you.