Skip to content

v2.95.2

Latest

Choose a tag to compare

@marcpope marcpope released this 10 Sep 00:45
· 8 commits to main since this release

🔒 If you are on 2.94.0 or older, update now

2.94.1 fixed a critical vulnerability (CVSS 9.9): a user with only the Manage Plans permission on a client could run commands as root on that client through a backup plan's advanced options. Every release before 2.94.1 is affected. If your server has non-admin users, treat this update as urgent. Details are in the 2.94.1 release notes and the advisories GHSA-w6m3-j4cx-8m67 and GHSA-mrq9-2g5p-r8j6.


2.95.2 replaces 2.95.0 and 2.95.1, both withdrawn today. Their notes are kept below.

Fixed in 2.95.2: agents on Python 3.4.2 went offline after updating. The self-signed certificate support added in 2.94.1 used a urlopen argument that Python only accepts from 3.4.3. An agent on Debian 8 updated, restarted, failed its first request to the server, and exited, and nothing restarts an agent that exits on its own. Agent 2.95.2 fixes it. An agent that is already offline from this cannot be reached by the server: copy agent/bbs-agent.py from this release over the one on the client (usually /opt/bbs-agent/bbs-agent.py) and start the service. The agent's updater also logged "updated to vunknown"; it reads the version correctly again.

Fixed in 2.95.1: the server could not read the agent version it ships. Since 2.94.1 the reader only looked at the first 50 lines of the agent script, and the constant had moved to line 51. The agents card on the Updates page disappeared, the client page stopped offering agent updates, and agent updates were never queued after a server update, which left agents on 2.93.9 through two releases. Once your server is on 2.95.2, the scheduler queues the update for every outdated, online agent within a minute (with Auto-update agents on, the default), and the Updates page shows the agents card again.


New: backups from filesystem snapshots (#479)

A backup plan has a new option, Back up from a snapshot. With it on, the agent takes a snapshot of every volume that holds one of the plan's directories, backs up from the snapshot, and removes it when the job ends. Files that change while borg is running no longer land half-written in the archive, which matters for databases, mail spools, VM images and anything else that is written to constantly.

How it works:

  • Supported volumes: LVM logical volumes (the volume group needs free space: 10% of the volume, at least 512 MB), btrfs subvolumes, and ZFS datasets. Linux only; the agent must run as root, which the default install does.
  • Where the option appears. The agent reports what its host can snapshot. The checkbox in the plan editor is enabled only on a client where it can work, and the tooltip says why when it cannot. Clients that can snapshot get a "Snapshots: LVM" badge in their header. Agents older than 2.95.0 have not reported yet, so the option waits until the agent updates.
  • Mixed hosts. A volume the agent cannot snapshot, such as a plain ext4 partition or an LVM group with no free space, is backed up live, read-only, so the archive is still complete. The job's activity log says which volumes were live and which came from a snapshot.
  • Archives look the same. Paths are stored as they would be from a live backup, so the catalog, file browser, and restores need nothing new. Existing plans can turn the option on without starting a new repository.
  • Failure is loud. A snapshot that cannot be taken fails the job instead of quietly backing up live. Snapshots are removed when the job finishes, and the agent clears anything a crashed job left behind when it starts.

Archive page: step through recovery points (#475)

The archive page has Newer and Older buttons with the archive's position in the list, "3 / 16", so the File Changes of consecutive archives can be reviewed without going back to the list each time. The left and right arrow keys do the same.

Fixes

  • Updating in a container that refuses executable memory failed at the Composer step with Allocation of JIT memory failed and left the install half-updated. The updater and installer now run Composer with PCRE JIT off for that one process, and a Composer failure no longer stops the migrations that follow (#480).
  • Plan and repository card menus opened underneath the "…" buttons of the cards after them (#463).
  • The back arrow on a job page returns to the page that linked there, such as a client's Repos tab, instead of always the queue (#469).
  • Report email showed a literal   in the data-added figure.
  • Client page with an unknown ?tab= value showed an empty pane; it now falls back to Status.

API

  • snapshot (bool) on plans: create, update, list, and client detail.
  • snapshot_capable on GET /api/v1/clients and GET /api/v1/clients/{id}, with the full snapshot_support report on the detail. Turning snapshot on for a client that cannot take one answers 422 with the reason.

Agent 2.95.2. Agents update themselves once the server is on this release.

BBS Manager for iOS is on the App Store; connect it under Settings → Push Service.