github marcpope/borgbackupserver v2.79.1

3 hours ago

A small point release: one fix to how BBS decides a client's backup has died, plus manual download and on-demand runs for server backups.

Backups no longer restart because a client is busy (#404)

A client was marked offline after three missed polls — 90 seconds by default — and every backup it had running was failed on the spot and re-queued. That threshold is shorter than the agent's own 60-second HTTP timeout, so a single stalled request was enough to trip it while borg was still working normally.

The retry then dispatched the moment the client reconnected, restarting a backup that may have been running for hours. On a plan with millions of files that restart is itself a heavy load, on a machine that was already short of CPU — which caused the next missed poll, and the next retry. One large backup on a busy host could turn into a day of them, and the repeated runs collided on the repository lock, taking unrelated plans down with them.

A running job now has to look dead before it is failed: the client silent for a grace period and no progress reported during it. Progress reports refresh the heartbeat, so a backup that is merely slow keeps itself alive. Clients still show offline immediately — this only governs when BBS kills their work.

Retries also back off now — five minutes, doubling, capped at an hour — rather than dispatching immediately. And after three consecutive attempts BBS says what the pattern actually means: repeated offline-retries point at a client running out of CPU, memory or I/O rather than losing its network, and each retry adds to that load.

Two new settings under Settings → Backups cover installs with very large backups or slow links: Give Up On Running Jobs After (default 5 minutes) and Retry Backoff (default 5 minutes).

Thanks to @henfri for the report — the retry chain, load figures and PSI data made this one straightforward to trace.

Server backups: keep a copy, or take one now

The off-site backup list could restore a backup onto the server but not hand you the file, so keeping a copy of your own meant fetching it by hand. Backup filenames in the list are now download links, with a Download button beside Restore. Downloads stream through the browser's own downloader, so progress, resume and "save as" all work and a large backup never sits in memory.

Back Up Now takes a server backup immediately — worth doing before an upgrade or a configuration change rather than waiting for the daily window — and uploads it when off-site sync is enabled. It runs the same code as the scheduled backup, so the two can't drift apart.

Notes

  • The agent is unchanged in this release; clients on 2.79.0 do not need to update.
  • Adds one database migration.

Don't miss a new borgbackupserver release

NewReleases is sending notifications on new releases.