Bug fixes
- No more random SSH resets on hosts with many stacks. Commands run in parallel with one SSH connection per stack, so
cf check,cf up --alland friends could start dozens of handshakes at once against the same host. sshd drops unauthenticated connections pastMaxStartups(10:30:100by default), which showed up as randomSSH error: [Errno 104] Connection reset by peer/Connection lostfailures. compose-farm now keeps at most 8 handshakes in flight per sshd (address and port). The cap covers only the handshake, so long-running commands such ascf logs -facross all stacks still run side by side. - A dead host still fails quickly. When a host times out or has no route, the commands queued behind the first batch of connects fail right away with the same error instead of each waiting out the timeout in turn. A slow or briefly flaky but reachable host is never cut off, and
ConnectTimeoutfrom~/.ssh/configapplies as before.
A host whose sshd is socket-activated (for example NixOS with services.openssh.startWhenNeeded) also has a limit on the socket (MaxConnections=64 by default), which counts every open connection; raise it there if you run more stacks than that on one host.
Full changelog: v1.27.2...v1.27.3