- Release Notes for Bacula 1.37.32
+ Release Notes for Bacula 1.38.3
- Bacula code: Total files = 420 Total lines = 137,098 (*.h *.c *.in)
+ Bacula code: Total files = 424 Total lines = 140,955 (*.h *.c *.in)
+ 20,440 additional lines of code since version 1.36.3
-Major Changes:
+Changes to 1.38.3:
+- This is mainly a bug release fix. In addition, the multiple drive
+ reservation algorithm has been rewritten.
+- In addition, the method of handling waiting for tapes to be
+ mounted and the mount messages has been modified.
+ (the above two items are a potential source of problems).
+- Simplify code in askdir.c that waits for creating an appendable
+ volume so that it can handle multiple returns from the wait code.
+- Modify the wait code to permit multiple returns.
+- Return a zero when "autochanger drives" is called and
+ it is not an autochanger.
+- Make rewind_dev() a method taking a DCR as an argument.
+ This permits closing and reopening the drive if the
+ rewind fails as happens if the drive was loaded while the
+ file descriptor was open. This refreshes the file descriptor.
+- Remove the ST_OPENED flag and always rely on fd < 0 for knowing
+ if the device is open or not. This should eliminate
+ Arnos problem.
+- Return error if reserve cannot find at least one suitable device.
+- Make wait_for_sysop() return correct state information.
+- Fix Win32 state file problem. write was not using compat
+ code. This should fix bug #500.
+- Modify gui on command to set only GUI mode and not batch.
+- Modify .messages command to always print messages regardless
+ of the mode.
+- If GUI mode is on, suppress automatic printing of
+ You have messages.
+- Modify restore command in wx-console to set gui on and to use
+ only .messages instead of messages. Hopefully this fixes bug
+ #514.
+- Implement load balancing code with multiple drive autochangers.
+- Rewrite reservation algorithm again. Rename variables to be
+ more logical, add HEARTBEAT with Director, allow cancel of
+ jobs stuck in reservation, add last resourt any_drive.
+- Fix seg fault if user labels a drive directly bug #513
+- Remove quotes around Version as it breaks things.
+- Merge in Aleksandar Milivojevic's mods to the spec file.
+- Apply sparse code fix for raw drives and fifos. Bug 506
+- Thorsten fixed Unicode cd problem with wx-console bug 505.
+- Correct reservation system to do a last ditch try
+ for any mounted volume, then anyone anywhere.
+- Updates to ssh-tunnel from Joshua Kugler.
+- Added a report.pl program from Jonas Bjorklund.
+- Simplify the O_NONBLOCK open() code for tape drives,
+ and always open nonblocking.
+- Do not wait for open() if EIO returned (shouldn't happen).
+- Eliminate 3 argument to tape open().
+- Correct the slot # edited in the 3995 Bad autochanger unload
+ message.
+- With -S on bscan (show progress) do not divide by zero.
+- Make cancel pthread_cond_signal() pthread_cond_broadcast().
+- When dcr is freed, also broadcast dev->wait_next_vol signal.
+- Remove unused code in wait_for_device.
+- Make wait_for_device() always return after 60 seconds of wait.
+- Use localhost if no network configured
+- Eliminated duplicate MaxVolBytes in cat update -- bug 509.
+- Update specs to include mysql4 define.
+- Return rec->FileIndex in dcr->VolLastIndex for normal
+ and partial records in read_record(). This allows bscan
+ to get FileIndex at EOT correct.
+- Fix butil.c to correctly set dcr -- fixes seg fault in bls.
+- Apply patch supplied by user (slightly modified) to fix
+ correct detection of holes in block devices and FIFOs.
+ Bug # 506.
+- Apply patch supplied by user (slightly modified)
+ to fix SD hang with multiple pools and bad client
+ IP. Fixes bug # 508.
+- Add nagios plugin to the examples directory. Submitted by
+ Christian Masopust.
+- Remove warning message about multiple saves of hardlinked files
+ from find_one.c as it can generate too many warning messages.
+- Reset timeout values before select() per patch from
+ Frank Sweetser for problems with non-blocking sockets.
+- Unlink the state file if either reading or writing it gets
+ errors. Hopefully this will fix Win32 exit problems.
+- Get next volume from Scratch pool before creating a volume.
+- Set new Pool defaults in Vol when moved from Scratch Pool.
+- Remove argument from create_bacula_database for SQLite as it
+ caused an error.
+- Fix reservation so that mutexes are properly applied.
+- Rework reservation algorithm so that two drives can be used
+ at the same time.
+- Apply days keyword patch from Alexander.Bergolth at wu-wien.ac.at
+ If this patch is applied, the number of days can be specified with
+ "list nextvol days=xx"
+ or
+ "status dir days=xx"
+ My use case is to be able to preview the next scheduled job (and the
+ next tape to be used) on fridays if there are no scheduled jobs during
+ the weekend.
+- Fix font code in gnome2 console user patch. Fixes bug #501.
+- Fix malformatted bnet error message that caused seg fault
+ fixes bug 502
+- Applied user patch to improve README.vc8 in src/win32.
+- Ensure that StorageId is stored in Media record when ever possible.
+- Remove old code from winservice.cpp
+- Break on error in scan.
+- Fix typo in signal.c
+- Separate read/write DCR in SD. Add jcr->read_dcr.
+- Cleanup how find_device() works.
+- Remove abs() in bfile.c so that it compiles on Solaris. Bug #491.
+
+Changes to 1.38.2:
+- Fix crash in tray-monitor when daemon disconnects. Bug #479.
+- Fix bnet-server bug found on OpenBSD. Bug #486
+- Fix cancel failure bug. Bug #481
+- Fix failure when Pool name has spaces. Bug #487
+- Fix SD crash in autochanger code. Mutex failure. Bug #488
+- Fix a couple of free()s in src/filed/acl.c
+- Fix memory overrun in bfile.c in building OS X resource
+ fork filename. Bug #489
+- Add Pool name to SD status output.
+- Add Python install dir for Solaris to configure. Bug #492
+
+Changes to 1.38.1:
+- Corrected ACL for Solaris (David Duchscher and Attila Fulop).
+- Add bacula_mail_summary.sh to examples directory. It makes
+ a single email summary of any number of jobs. Submitted
+ by Adrew J. Millar.
+- Unmount command now unloads autochanger.
+- Fix hang in FD (Martin Simmons)
+- Fix Win98 stat() problem in FD (Thorsten Engel)
+- Fix update slots which did not clear missing tapes.
+- Fix autostart install for FreeBSD (user reported)
+- Fix several problems with PostgreSQL scripts (Eric Bollinger)
+- Critical: allow restore of the first file of non-portable Win32 backup.
+- Important: with muliple concurrent jobs the autochanger could get
+ confused because of a missing mutex.
+- Fix accessing last slot in label and update slots.
+- Modify configure.in to add execute option to sqlite3 catalog
+ scripts.
+- Create update_xxx_table_8_to_9 scripts for updatedb
+- Move the -lcrypt for PostgreSQL after the PostgreSQL libs in
+ autoconf/bacula-macros/db.m4 as suggested by user. Fixes bug #457.
+- Remove @STATIC_CONS@ from tray-monitor Makefile as suggested
+ by user. Fixes bug #456.
+- AMD64 users see compiler bug warning below!!!!!!!!!
+
+Major Changes in 1.38:
+- Fixed out of order Volumes in restore.
+- Improved algorithm for reserving drives in multiple drive
+ autochangers. Autochange users MUST use the new Autochanger
+ resource in the Storage daemon.
- There is a new database format that is not compatible
with previous databases. You must upgrade if converting
- from 1.36.x.
+ from 1.36.x. No changes from version 1.37.30.
- The Director, Storage daemon, and File daemons are
- Deamons are not compatible with prior versions.
+ Deamons are not compatible with prior versions.
All FDs must be upgraded at the same time.
-- Multiple drive autochanger support. You *must* update
- your SD conf file.
- Support for ANSI/IBM labels.
-- New communications protocol between DIR and SD to reserve
- drives.
- Faster database inserts due to combining the MD5/SHA1 into
the attributes record, eliminating one INSERT/file backed up.
- Python Event support has been added. See below for
- configuration and details. Unfortunately, it is not yet complete
- and the only really useful function is defining a new
- Volume name.
-- DVD writing support, using parts, and a lot of new directives in
+ configuration and details. The implementation is somewhat minimal,
+ so the functionality is not complete. The Python interface
+ has not been extensively tested, so please consider it BETA.
+- DVD writing support, using parts, and some new directives in
the Device resource of the Storage configuration file thanks
to Nicolas Boichat. Please note that this code is still
- experimental and should be carefully tested before using in
+ BETA and should be carefully tested before using in
production.
- Seven new options keywords in a FileSet resource:
ignorecase, fstype, hfsplussupport, wilddir, wildfile, regexdir,
records have been removed from the catalog.
- Restore of a directory (non-recursive, i.e. only one level).
- Support for TLS (ssl) between all the daemon connections thanks
- to Landon Fuller. This is mostly untested.
+ to Landon Fuller.
- Any Volume in the Pool named Scratch may be reassigned to any
other Pool when a new Volume is needed.
- You may clone a Job and thus write (almost) the same data
turn on VSS with "Enable VSS = yes" in your FileSet resource.
- New manual format with an index (thanks to Karl Cunningham).
- New Web site format (thanks to Michael Scherer).
-- SQLite3 support, but it seems to run at 1/2 to 1/4 the speed of
- SQLite2.
+- SQLite3 support.
- Web-bacula, previously a separate project by Juan Luis Frances,
- is now included in the Bacula GUI release (yet to be fully
- created).
+ is now included in the Bacula GUI release. This is a management
+ level tool for reporting the state of Bacula jobs.
+- The code is now Internationalized so that it can be localized
+ in native languages. Thanks to Nicolas Boichat.
New Directives:
- New Job directive "Prefer Mounted Volumes = yes|no" causes the
and differential jobs. The since=... is ignored when level=Full.
A cloned job will not start additional clones, so it is not possible
to recurse.
-- New Options keywords in a FileSet directive:
+- New Options keywords in a FileSet directive (backported to 1.36.3):
- WildDir xxx
Will do a wild card match against directories (files will not
be matched).
sure no Python scripts are running. This permits you to change
a Python script and get Bacula to use the new script.
+New configure options:
+- --with-libintl-prefix for defining alternate locations for
+ the NLS internationalization libraries. Not normally required.
+- --datadir for defining where the language files will be installed
+ required only if you do not want the default /usr/share.
+
Items to note!!!
+- The Storage daemon now keeps track of what tapes it is using
+ (was not the case in 1.36.x). This means that you must be much
+ more careful when removing tapes and putting up a new one. In
+ general, you should always do a "unmount" prior to removing a
+ tape, and a "mount" after putting a new one into the drive.
+- If you use an Autochanger, you MUST update your SD conf file
+ to use the new Autochanger resource. Otherwise, certain commands
+ such as "update slots" may not work.
- You must add --with-python=[DIR] to the configure command line
if you want Python support. Python 2.2, 2.3 and 2.4 should be
automatically detected if in the standard place.
- When linking with --with-python, there are a few warnings that
can be ignored.
- You must either create a new catalog database or upgrade your
- old database.
-- The TLS code is for the most part untested.
+ old database. After installation, run from your scripts
+ directory:
+
+ ./upgrade_bacula_tables
+
+ You can also find this script in the <bacula-source>/src/cats
+ directory.
+- The Director, Storage daemon, and File daemons are
+ Deamons are not compatible with prior versions.
+ All FDs must be upgraded at the same time.
- You must add --with-openssl to the configure command line if
you want TLS communications encryption support.
-- If you use an Autochanger, you *must* update your SD conf file
- to use the new Autochanger resource. Otherwise, certain commands
- such as "update slots" may not work.
- Disk seeking during restores does not yet work correctly in
all cases, so it is turned off.
+- Note, with gcc (GCC) 4.0.1 20050727 (Red Hat 4.0.1-5) on an
+ AMD64 CPU running 64 bit CentOS4, there is a compiler bug that
+ generates bad code that causes Bacula to segment fault.
+ Typically you will see this in the Storage daemon first. The
+ solution is to compile Bacula ensuring that no optimization is
+ turned on (normally it is -O2).
+ This same compiler bug has been reported and confirmed with
+ gcc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux) running on
+ an AMD64 CPU. This for the moment, I would recommend that all
+ users of GCC 4.0.1 or greater turn off all optimization when
+ compiling.
+
Other Items:
-- 2 new scripts, dvd-writepart and dvd-freespace, in the scripts directory,
- which are designed to be used as parameters to Write Part Command and
+- Security fixes for temp files created in mtx-changer, during
+ ./configure, and during making of Rescue disk.
+- A new script, dvd-handler, in the scripts directory,
+ which is designed to be used as parameters to Write Part Command and
Free Space Command. They need the dvd+rw-tools to be installed
- (http://fy.chalmers.se/~appro/linux/DVD+RW/).
- You must have Python installed to run the dvd-freespace script.
+ (http://fy.chalmers.se/~appro/linux/DVD+RW/) AND, the growisofs
+ program must be patched using the
+ <bacula-source>/patches/dvd+rw-tools-5.21.4.10.8.bacula.patch
+ You must have Python installed to run the scripts.
- Part files support: File volumes can now be split into multiple
files, called "parts".
-
- For the details of the Python scripting support, please see the new
Python Scripting chapter in the manual.
+- The default user/group for the Director and Storage daemon installed
+ by rpms is bacula/bacula, thus you may need to add additional permissions
+ to your database, or modify the permissions of the tape drive. If
+ all else fails, change to using user=root. However, it is more secure
+ to use user=bacula.