Skip to content

v2.18.0-beta.27 — the ssh process leak, on the beta channel too

Pre-release
Pre-release

Choose a tag to compare

@amayer1983 amayer1983 released this 10 Sep 16:54

Carries the two fixes from v2.17.10. If you are on :beta with an ssh:// host, take this one.

Fixed

An install with an ssh:// host runs itself out of processes. Every host reports could not list containers (rc=2): runtime/cgo: pthread_create failed: Resource temporarily unavailable — the tcp:// ones and the local socket included, which have nothing to do with ssh. A live four-host install held 12074 defunct ssh processes and could not fork at all.

The connection reuse added in 2.17.6 leaves an ssh master in the background; when the docker client exits, that master is handed to PID 1 — to Docksentry — and Python never waits for a child it did not start. It runs under tini now, which reaps them. The reuse stays: it was the trigger, not the cause. The full reasoning, including why this is not a signal handler of our own, is in the 2.17.10 notes.

Restarting clears what has piled up; updating stops it coming back.

A host that is down was reported as the local machine in /api/status and /metrics, while the one that actually failed was left out — an alert about the wrong box on exactly the multi-host installs where a host being off is normal.