Release Notes for Bacula Community 15.0

Community

This is a major release with many new features and a number of changes. Please take care to test this code carefully before putting it into production. Although the new features have been tested, they have not run in a production environment.

Compatibility

As always, both the Director and Storage daemon(s) must be upgraded at the same time. Any File daemon running on the same machine as a Director or Storage daemon must be of the same version.

Older File Daemons should be compatible with the 15.0 Director and Storage daemons. There should be no need to upgrade older File Daemons.

In 15.0, we have upgraded the volume format from BB02 to BB03 to support options such as the Volume encryption. Old volumes can still be used by the 15.0 Storage Daemon, however, new 15.0 BB03 volumes cannot be used by old Storage Daemons.

New Catalog format in version 15.0.0 and greater

This release of Bacula uses a new catalog format. We provide a set of scripts that permit conversion from 9.x and earlier versions to the new 15.0 format (1026). Normally the conversion/upgrade is automatic, though there is a big change from 9.x to 11.0 that takes longer than usual, the upgrade process will require about twice the disk space of the actual database.

The database upgrade introduced in 11.0 should significantly increase performance when inserting a large number of Jobs with a lot of Files into the database catalog.

If you start from scratch, you don’t need to run the update_bacula_tables script because the create_bacula_tables script automatically creates the new table format. However, if you are using a version of Bacula older than 5.0.0 (e.g. 3.0.3) then you need to run the update_bacula_tables and the grant_bacula_privileges scripts that will be found in the <bacula>/src/cats directory after you run the ./configure command.

As mentioned above, before running this script, please backup your catalog database, be sure to shutdown Bacula and be aware that running the script can take some time depending on your database size.

Release 15.0.3 / 25 March 2025

15.0.3 is a minor bug fix release.

  • Use the CLOEXEC function in sockets and all file descriptors

  • BSOCK improve POLL to detect and report errors

  • Check for backquote in check_for_invalid_chars() function

  • Detect unsolvable volume cycle in split_bsr_loop()

  • Enforce malware database download from Abuse.ch

  • Fix #10947 time output without century for locale that use multi bytes utf8

  • Fix #10985 Report the FD/SD Encryption in the Job record and the job output

  • Fix #11048 About LastBackedUpTo StorageGroup policy not correctly set

  • Fix #11058 About fsync error reported for tape driver

  • Fix #11197 About error when using bextract on ZSTD compressed data

  • Fix #11251 About bcopy not mounting correctly volumes provided with -i option

  • Fix Client/Uname field not always updated after a status client

  • Fix compilation issue with zstd and without lzo

  • Fix compilation variable in var.c and expand.c

  • Fix org#2714 Fails to take TLS Allowed CN into account

  • Fix org#2738 About error message with generated fileset

  • Fix org#2748 About compilation error with ZSTD and not LZO enabled

  • Update bsmtp copyright information

  • baculum: Add cloud storage status to SD status endpoint

  • baculum: Add enable and disable client, storage, job and schedule endpoints

  • baculum: Add name and sort parameters to filesets filter

  • baculum: Add new query parameters in M365EmailList endpoint

  • baculum: Fix #2722 port from Bacularis fix for displaying schedule list

  • baculum: Fix compatibility with very old PHP 5.4

  • baculum: Fix missing scopes on supported OAuth2 scope list

  • baculum: Fix sorting in filesets endpoint if unique filesets parameter is used

  • baculum: Update API documentation

  • bpipe: Fix org#2737 About segfault with bpipe

  • k8s: Add Ingress integration backup/restore

  • k8s: Add dockerfile to create an image to compile k8s plugin in any debian/ubuntu distribution

  • k8s: Add more options to debug

  • k8s: Add new level(In pvc annotations) in selection of backup mode

  • k8s: Add parallel job in same namespace

  • k8s: Add pvc annotation takes precedence without pod annotation

  • k8s: Add pvc clean up from old backup jobs

  • k8s: Avoid pvc data when pvc is in Pending status. k8s: Fix redoing backup when pvcdata is 0 bytes and the backup mode is standard

  • k8s: Avoid pvcs backup when the pvc status is Terminating

  • k8s: Fix #0010901 - Problem when restore service clusterIPs

  • k8s: Fix #0011005: ModuleNotFoundError: No module named ‘baculak8s.plugins.k8sbackend.ingress’

  • k8s: Fix get provisioner permissions

  • k8s: Fix restore problem where pod require the pvc data when it starts

  • k8s: Fix show pvdatada message when you don’t use it

  • k8s: Get images from repositories with auth

  • show minimal backtrace if gdb is not installed

  • win32: Fix unwanted debug messages in windows File Daemon

Bugs fixed/closed since last release:

10291 10901 10947 10985 11005 11048 11058 11197 11251 2722

Release 15.0.2 / 21 March 2024

Security:
  • Director TOTP Console authentication plugin

  • Better restricted console support

  • Add Storage Daemon Volume encryption support

  • Add support for Immutable filesystem flag for volumes

  • Add support for Append Only filesystem flag for volumes

  • Clamav Antivirus plugin

  • Malware detection code (via Abuse.ch)

  • Add AllowedBackupDirectories FileDaemon’s directive

  • Add AllowedScriptDirectories FileDaemon’s directive

  • Add ExcludeBackupDirectories FileDaemon’s directive

  • Add AllowedRestoreDirectories FileDaemin’s directive

Management:
  • New FreeSpace and LastBackedUpTo storage group policy

  • New ZSTD fileset compression support

  • Add Kubernetes CSI Volume Snapshot support

  • Add Amazon Cloud driver (in replacement of libS3 cloud driver)

  • Switch Storage Daemon volume format from BB02 to BB03

  • New Bacula Installation Manager (BIM) to ease the installation

  • Add runscript “AtJobCompletion” execution option

Catalog changes:
  • FileSet content description in the FileSet table

  • Add Job/RealStartTime catalog field

  • Add Job/Encrypted catalog field

  • Add Media Protected and UseProtect fields

  • Add Media VolEncrypted field

  • Add FileEvent table and “list fileevent” to track malware and viruses

  • Plugins list available in the Client table

  • Store verified jobid into the catalog PriorJobId Job field

Console changes:
  • Add JSON output to various commands (.jlist, .api 2 api_opts=j)

  • .help enhancement with description of commands

  • help command restricted to the available commands

  • Add .search bconsole command

  • Add bconsole “list joblog jobid=x pattern=xxx” option

  • Add fileindex=jobid,fidx option in .bvfs_restore

  • Add VolType to .bvfs_versions

  • Add “update volumeprotect storage=xxx” bconsole command

  • Add “status dir novolume” to not compute volume in status director output

  • Limit the “status dir” schedule output to 50 jobs. Can be managed via “limit=x offset=y” parameters

  • Add new error codes to job messages

  • Update timestamp of the pid file after a reload command

  • Add “.status dir client=xxxx” filter

  • Add “list jobs reviewed=<1|0>” command

  • Add Runscript to control the run queue (RunsWhen=Queue)

  • Add “.ls dironly” bconsole command

  • Add new Job statuses when the Job is waiting on SD/FD

  • Add new PriorJobId and PriorJobName to volume label format variables

  • Progress Status for Copy/Migration Jobs in “status director” output

  • Add “list fileevent” bconsole command

Baculum and Rest API changes:
  • Add joberrors parameter to jobs endpoint

  • Add fileset parameter to objects endpoint

  • Add filename and path properties to fileevent endpoints

  • Add sorting parameters to clients endpoint

  • Add running jobs property to clients endpoint

  • Add documentation for os and version filters in clients endpoint

  • Add os and version parameters to clients endpoint

  • Add os, version properties and overview parameter to clients endpoint

  • Add endpoint to check disk archive device prformance on storage

  • Add endpoint to list files and dirs on storage daemon host

  • Add delete pool endpoint

  • Add delete object endpoint

  • Use new delete module in volume and job endpoints

  • Add module for delete command

  • Add client name parameter to clients endpoint

  • Add file events API endpoint

  • Improve extended name validator

  • Speed up dashboard page loading

  • Fix parsing director time in time endpoint

  • Add objecttype parameter to object categories endpoint

  • Add second dimensional sorting and use it for sorting jobstatus in

  • Add modify default object sorting in object overview endpoint

  • Fix support for PHP 5.4 in web interface layer

  • Fix content field in job record

  • Improve support for newer PostgreSQL versions

  • Add fileset content property to jobs endpoint

  • Add object categories endpoint

  • Add support for ALL action in console ACL

  • Add objecttype filter to objects names endpoint

  • Add default sorting by endtime to objects overview endpoint

  • Add sorting parameters to volumes overview endpoint

  • Add second dimension of sorting in jobs objects endpoint

  • Add offset and limit parameters to director status endpoint

  • Add sorting by endtime and add endtime property to objects overview

  • Add group_order_by and group_order_direction parameters to documentation

  • Add notes about object type filters in objects overview endpoint

  • Fix storing ACL config actions for very old PHP versions

  • Add objectsize property to objects overview endpoint

  • Add job type property to objects overview endpoint

  • Add path property to objects overview endpoint

  • Fix offset and limit parameter in jobs objects endpoint

  • Add objectname parameter to jobs objects endpoint

  • Add objectsource property to objects overview endpoint

  • New API config ACLs

  • Add group_order_by and group_order_direction parameters to objects

  • Add to grup function sorting group capability

  • Add sorting by joberrors if sorted by jobstatus first

  • Improve using unique_objects parameter in object endpoint

  • Add group_offset and unique_objects parameters to objects endpoint

  • Add volume names endpoint

  • Add object names endpoint

  • Add object types endpoint

  • Add documentation for client parameter in objects endpoint

  • Add job status filter to objects endpoint

  • Add joberrors filter to sources endpoint

  • Add server parameter to list vsphere datastores endpoint

  • Add job level property to sources endpoint

  • Add pool resnames endpoint

  • Add storage resnames endpoint

  • Add director time endpoint

  • Change M365 tenants endpoint output to contain tenant names

  • Update documentation

  • Add object overview endpoint

  • Add client plugin list endpoint

  • Add content parameter to filesets endpoint

  • Add directive filter to config endpoints

  • Add enabled filter to clients show endpoint

  • Add endpoint to list AWS cloud buckets

  • Split client overview endpoint into reachable and unreachable clients

  • Adapt storage file ls command parameters to new form

  • Add cancel jobs running on storage endpoint

  • Add delete client endpoint

  • Add endpoint to create directory on storage daemon host

  • Add endpoint to get device disk usage on storage daemon host

  • Add endpoint to list SCSI tape devices on storage daemon host

  • Add fileset filter to objects overview endpoint

  • Add job name and fileset to status client endpoint

  • Add job type parameter to objects overview endpoint

  • Add jobdefs list endpoint

  • Add jobstatus filter to objects overview endpoint

  • Add name parameter to storages endpoint

  • Add option to interpret Bacula error codes by API

  • Add parser for diskperf command output

  • Add regex operator support in queries

  • Add restricting resources in objects overview endpoint

  • Add type parameter to clients endpoint

  • Add usage of multiple content values in filesets endpoint

  • Add volume statistics endpoint

  • List only reachable/unreachable clients in clients endpoint

Misc:
  • Add XXHASH to FileSet signature option

  • Add plugins for Verfy jobs

  • Display mtime instead of ctime in estimate listing output

  • Add specific jobstatus when executing Runscripts

  • New man pages

  • Add %i (jobid) to edit_device_codes(), can be used in storage daemon scripts

  • Pass comment field to copy/migration jobs from the control job

  • Add JobTimestamp variable for volume label format

  • Improve BSR cycle detection and resolution

Release 15.0.1 / 13 February 2024

15.0.1 is a minor bug fix beta release.

  • cloud: Fix #10525 Add device name to the transfer fields

  • Fix #10163 Add %i (jobid) to edit_device_codes()

  • Fix #10365 Pass comment field to copy/migration jobs from the control job

  • Fix #10524 About adding JobTimestamp variable for volume format

  • Fix #10401 About issue when truncating immutable volume

  • Fix #10453 volume with a wrong label

  • Fix #10513 About show command issue with incorrect storage configuration

  • Fix #10631 remove unauthorized Jmsg() in BSOCK::recv()

  • Fix #2699 About SQLite update script

  • Fix #2701 compilation of bjoblist

  • Fix JSON output in .status dir running

  • Fix openssl 3.x don’t tolerate to call EVP_CipherFinal_ex() twice

  • Fix org#2440 Improve Makefiles to use relative paths

  • Fix org#2561 Convert text from ISO-8859 to UTF8

  • Fix org#2698 about error with osx platform

  • Fix org#2704 about old FD compatibility

  • Fix org#2705 about issue with accurate checking of new file signature attributes

  • Fix restore issue when compression is enabled but not available

  • Fix warning about BSOCK::send()

  • Fix zlib compression was disable in FD

  • Fix: #0010535. Problem with k8s snapshot version

  • baculum: Add application version endpoint

  • baculum: Add client plugin list endpoint

  • baculum: Add content parameter to filesets endpoint

  • baculum: Add directive filter to config endpoints

  • baculum: Add enabled filter to clients show endpoint

  • baculum: Add endpoint to list AWS cloud buckets

  • baculum :Split client overview endpoint into reachable and unreachable clients

  • baculum: Adapt storage file ls command parameters to new form

  • baculum: Add cancel jobs running on storage endpoint

  • baculum: Add delete client endpoint

  • baculum: Add endpoint to create directory on storage daemon host

  • baculum: Add endpoint to get device disk usage on storage daemon host

  • baculum: Add endpoint to list SCSI tape devices on storage daemon host

  • baculum: Add fileset filter to objects overview endpoint

  • baculum: Add job name and fileset to status client endpoint

  • baculum: Add job type parameter to objects overview endpoint

  • baculum: Add jobdefs list endpoint

  • baculum: Add jobstatus filter to objects overview endpoint

  • baculum: Add name parameter to storages endpoint

  • baculum: Add option to interpret Bacula error codes by API

  • baculum: Add parser for diskperf command output

  • baculum: Add regex operator support in queries

  • baculum: Add restricting resources in objects overview endpoint

  • baculum: Add type parameter to clients endpoint

  • baculum: Add using multiple content values in filesets endpoint

  • baculum: Add volume statistics endpoint

  • baculum: Fix content property in sources endpoint

  • baculum: Fix count property in volume overview endpoint

  • baculum: Fix name parameter in jobs objects endpoint

  • baculum: Fix using error module

  • baculum: List only reachable/unreachable clients in clients endpoint

  • baculum: Mask sensitive AWS data in debug log

  • baculum: Update API documentation

  • cloud: Fix #10291 Assume that driver ls can return an error when scanning an unexistant cloud volume and loosen the conditions that handle this case

  • cloud: Fix #10685 TruncateCache at endofjob was not processed due to wrong transfer status verification

  • cloud: proof guard truncation

  • cloud: test compare upload to AWS with 4 different methods, including bacula post-upload

  • k8s: Fix compilation problem

  • k8s: Fix csi compatibility

  • k8s: Fix problem when it restores a ‘namespace’

  • k8s: Fix pvc naming error in csi snapshots

  • rpms: Fix cloud spec file for redhat8

Bugs fixed/closed since last release:

10163 10291 10365 10401 10453 10513 10524 10525 10535 10591 10604 10631 10685 2699 2701

Go back to: Bacula Community Release Notes.