Skip to content

v0.12.34

Choose a tag to compare

@github-actions github-actions released this 28 Oct 16:54
· 11 commits to main since this release
9b811d0

v0.12.34 — the Docker source survives a broken events stream

When the connection to Docker's event stream broke (Docker Desktop restarting, a laptop waking from sleep, a socket or tunnel blip), logscry's Docker source ended: the containers it was following stopped streaming, and the only way back was to restart logscry, which re-read every container's history. Since v0.12.11 this was at least reported; now it is handled.

What changed:

  • logscry reconnects on its own and keeps following Docker. It asks the daemon to replay the events it missed, re-lists the running containers, and continues each one from the last line it had read, so no line is read twice and none is skipped.
  • A container that started during the outage is picked up; one that started and exited during the outage is read to its end.
  • Retries back off from 1 s to 30 s and continue for as long as logscry runs. The status bar (and stderr with --plain) shows docker: events lost, reconnecting (attempt N, next in Ds): <cause> and then docker: events reconnected, M container(s) re-attached.
  • If Docker is unreachable when logscry starts, it still stops at once with the connection error, as before.
  • The README's Go badge now reads "go ≥ v1.26.1", the minimum Go version to build.
  • Built with go1.26.10.

Measured:

  • Live on Docker 29.9.2, cutting the connection mid-run: v0.12.33 delivered 20 of a running container's 102 lines and never saw containers started during the cut; v0.12.34 delivered 102 of 102, all 31 lines of a container started during the cut, and all 5 of one that started and exited during it.

Install: download the binary for your OS from the assets below, or go install github.com/maxie7/logscry/cmd/logscry@latest.

Known limitations:

  • A container that starts and exits during an outage longer than Docker's event buffer (its last 256 events), a --rm container that exits during any outage, and lines written while the Docker daemon itself is down can still be missed.
  • #155: on a terminal that does not answer the background-colour query, logscry waits 5 s before starting.
  • The full list is in the README's Known limitations.

Tracked as #100.