Attempt to retry communication between Runner and client
Problem to solve
Certain Docker API may behave flaky, i.e. restarting or throwing exceptions. This may result in jobs failing due to the Docker Daemon not responding, for example:
ERROR: Job failed (system failure): Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (docker.go:833:120s)
If the Runner communicates with the client, possibly with a backoff, then we might be able to prevent said failing jobs.
User experience goal
Currently, a user's last resort is to retry the jobs via ci like so:
test: script: rspec retry: max: 2 when: runner_system_failure