github marcpope/borgbackupserver v2.24.10

latest releases: v2.25.2, v2.25.1, v2.25.0...
13 hours ago

Bug Fixes

  • Job cancellation hang — Killing borg on cancel now kills the entire process tree (including the SSH transport child) so the agent doesn't hang waiting on a dead pipe (#91)
  • Catalog import on FUSE/shfs — Catalog files are now explicitly chgrp'd to www-data with a chmod 644 fallback, plus diagnostic logging to trace permission issues on Unraid and similar FUSE mounts (#84)
  • Daily catalog rebuild loop — Archives with 0 indexable files no longer trigger a rebuild every 24 hours (#112)
  • Import repo first-click failure — Removed 2>&1 from verify-repo helper so borg's cache initialization messages don't corrupt the JSON output (#99)
  • Shell hook script arguments — Pre/post script paths now support arguments (e.g. /path/script.sh before) via shell-style parsing (#107)
  • Queue detail overflow — Long file paths and command lines now wrap instead of overflowing the layout (#108)
  • Prune imported archives — Prune can now clean up imported archives on single-plan repos (#109)
  • False "update failed" — PHP-FPM restart failure during update no longer aborts the script before printing the completion marker (#93)
  • Repo name sanitization on import — Import now sanitizes repo names the same way as create, preventing leading slashes and special characters (#114)
  • Same-path rename — Renaming a repo where old/new paths resolve to the same directory (e.g. /homehome) now just updates the DB name (#114)
  • Download .tar.gz diagnostics — "No files were extracted" now includes borg output, exit code, and a root-level view of the tmp dir in the server log (#81)
  • Last Backup stat tile — Font size now matches the other stat tiles (#103)
  • OIDC SSO — Fixed addScope TypeError when configuring multiple scopes (#95)

Agent

  • bbs-agent v2.24.2
    • Self-recovery from bad updates: syntax validation (ast.parse) before replacing the running script, automatic .bak backup, and a new startup wrapper (bbs-agent-start.sh) that downloads a fresh copy from the server if the .py is broken
    • Shell hook scripts support command-line arguments
    • Cancel kills the entire borg process group (not just borg) to prevent orphaned SSH children
    • Windows: bundled Git-for-Windows SSH to avoid the built-in ssh.exe stdin forwarding hang
    • Python 3.4 compatibility fix for **kwargs unpacking

Server / UI

  • Log page — Added client filter dropdown alongside the existing level filter
  • Log retention — server_log auto-pruned at 30 days, backup_jobs at 90 days
  • Borg Management page — Windows/macOS agents no longer show a false "incompatible" warning; tooltip improved for Linux agents without a matching server binary
  • Agent offline notifications — Downgraded from critical to warning severity (#111)

Agent Update Safety

A Python 3.4 syntax incompatibility in v2.24.4–v2.24.9 caused agents on CentOS 6/7 to crash on update with no auto-recovery path. This release adds three layers of defense:

  1. Syntax validationast.parse checks downloaded code before replacing the running script
  2. Backup.bak copy saved before every replacement
  3. Startup wrapperbbs-agent-start.sh runs before the Python agent, downloads a fresh copy from the server if the .py is broken, and restores from backup if the server is unreachable

Agents that were bricked by the earlier update need a one-time manual fix: re-run the install script from the BBS dashboard on the affected machine. After that, the wrapper prevents this class of failure permanently.

Don't miss a new borgbackupserver release

NewReleases is sending notifications on new releases.