Release Notes for Bacula 1.34.1 Bacula code: Total files = 344 Total lines = 98,746 (*.h *.c *.in) Changes for 1.34.1: - Autochanger users, please note you must add %d to the end of the changer command line in your Device resource in your bacula-sd.conf file. - There is a new wx-console program that does restores with a tree allowing you to visually select what files are to be restored. It is in a preliminary stage of development, but can be easily be built under Linux with GTK, and with just a bit more difficulty under Win32 with MinGW. - Fixed a major race condition in the job scheduler when multiple simultaneous jobs is enabled. This occurred only when on job had blocked another because of resource usage. - Fixed crash in SD during restore. - Changed the backup report to indicate "Backup OK -- with warnings if any warning messages were generated. - Change output of restore report to indicate: "Restore OK -- warning file count mismatch" - Make backup report say "Backup OK with warnings" if either FD or SD report any non-fatal errors. - Modify bscan to print some elementary statistics (#Jobs, #Files, ...) added to catalog. - Added --enable-wx-console and updated Makefile.in - Fix mtx-changer so that the calling sequence is compatible with the previous version (the new one required arguments that were not necessarily used). - Document how to use stunnel with Bacula. - Fix crash in query command. - Remove schedule from the default restore job. - Fix data spooler to use min/max tape blocking factors. - Automatically turn of conio if library not found instead of bombing. - Cleaned up a lot of copyright dates. - Try to keep spool statistics from going negative. - Added new Pools chapter. Doc about using two disks. - Attempt to keep the spool file statistics size from going negative. - Fix the Director's Scheduled Jobs: list to have a === termination. - Fixed ./configure to disable readline rather than stop if readline.h is not found - Fixed a typo in the SQLite database update script as reported by Robert J. Clark - thanks. - Removed src/win32/pthreads and src/win32/zlib from the source tree. - Created a new depkgs-win32 that has the pthreads and zlib source code. - Removed the JobDefs from the default Restore job as it has a schedule. Thanks to Matt Howard for this. Release 1.34.0 Major Features: - Data spooling which reduces tape shoe-shine during Inc backups, and permits multiple simultaneous backups without interleaved blocks. - Native Win32 client -- much faster and restores permissions correctly (thanks to Christopher Hull) - New Windows style installer for the Win32 Client. - PostgreSQL database driver (thanks to Dan Langille). - Polling of devices eliminating need to unmount and mount from console. - Improved Autochange support of Slots (update slots scan). - Autochanger support for multiple drives (I think). - New conio code to implement Console command line editing and history. - JobDefs resource permits smaller .conf files for Director - Access console lists for the Console - Pool level overrides. - Daemon "status" is recovered across daemon executions. - Improved btape "test" and "fill" commands. Items to note: !!!!! - If you have a RedHat system, be sure to delete the /lib/tls directory from your system. It contains defective pthreads code. - The restore default is changed to have nothing selected by default. You must either enter: "restore all" or after getting into the tree selection prompt enter "mark *" to have everything selected. - In previous versions the "all" keyword on the restore command caused it to return without user interaction after selecting everything. This function is now replaced by the "done" keyword (more logical). The "all" keyword now causes everything to be selected by default. - The default tape driver behavior is now to write only a single EOF at the end of the tape. For most tape drives, this is totally transparent and nothing needs to be done. For FreeBSD see below. - FreeBSD users NOTE!!!!! You may need the following two records to your SD Device resource for tape drives. TWOEOF = yes Fast Forward Space File = no The "Fast Forward Space File" is surely needed, and the TWOEOF is needed on some systems and not others. Running the btape "test" command will tell you. If you get an error with TWOEOF set to yes, set it to no. - If you want either bsmtp or bconsole on Win32, you will need to load the 1.32 version along with cygwin1.dll. Some solution for this will be forthcoming in a future update. - The daemon protocol has changed from version 1.32, you must update everything at once. - The database level has been updated. You must either re-initialize your databases with: ./drop_bacula_tables ./make_bacula_tables which will delete ALL prior catalog information, or you can update your 1.32 database with: ./update_bacula_tables Please save your old database before dropping the tables or doing an upgrade or you may regret it later. - If you are updating versions older than 1.32, you can look in the updatedb directory for scripts that you can use. You will need to manually set the paths for your system. - smtp has now become bsmtp -- you *must* modify your .conf files. - console has now become bconsole. - console.conf is now bconsole.conf - Please don't underestimate the repercussions of the bsmtp and bconsole name changes! New directives: - "Close on Poll = yes/no" in SD Device resource. - "Volume Poll Interval = time-interval" in SD Device resource. - "Two EOF = yes/no" in SD Device resource. - "Maximum Network Buffer Size = size" in SD Device resource. - "Maximum Network Buffer Size = size" in FD FileDaemon (or Client) resource. - "Console" new resource in Director conf file. New directives: Name, Description, Password, JobACL, ClientACL, StorageACL, ScheduleACL, RunACL, PoolACL, CommandACL, FileSetACL, CatalogACL. - "Max Run Time = duration" in Director Job resource. - "Max Wait Time = duration" in Director Job resource (not fully implemented). - "JobDefs = name-of-resource" in Director Job resource. - "Jobdefs" new resource in Director. Same directives as for a Job. - "Full Backup Pool = xxx" in Job resource in the Director. - "Incremental Backup Pool = xxx" in Job resource in the Director. - "Differential Backup Pool = xxx" in Job resource in the Director. - Three new options on the Run override statement in a Schedule resource: FullPool=xxx IncrementalPool=xxx DifferentialPool=xxx - SpoolData=yes/no in DIR Job resource - SpoolData=yes/no in Run override directive. - MaximumSpoolSize in SD Device resource - MaximumJobSpoolSize in SD Device resource - SpoolDirectory in SD Device resource. - Drive Index in SD Device resource for using two autochanger drives. - mtimeonly=yes/no on Include directive. - keepatime=yes/no on Include directive. New Commands: - "SetIP" - Added "pool=xxx" to restore command line. - Added "fileset=xxx" to restore command line. - Fixed "storage=xxx" on restore command line. - "markdir" command in restore tree. - "unmarkdir" command in restore tree. - "quit" command in restore tree. - Trace option on "setdebug trace=1/0 ..." - Update slots scan - The "all" keyword on the restore command marks all files by default. - The "done" keyword prevents user interaction with the tree -- used mostly for batch scripting. Additional changes: - Slackware support - On multiple ctl-c, exit from console quickly. - Implement "delete job jobid=xxx jobid=yyy ..." - Implement "purge volume=xxx volume=yyy ..." - Add -p option to all SD programs including bacula-sd. It causes Bacula to proceed or forge on in case of I/O errors. It is unlikely this will help, and it is strongly recommended against running the daemon with this option in production. - Add a missing unlock in the jobq handler. - Fix bug where a soft linked file and a directory had the same name by treating the soft link as a directory and putting the entries under it. This fixes the bug reported by Alexander Mueller. - Apply Jess Guardiani's second fix to list autochanger volumes without opening the drive (necessary on FreeBSD if no tape is in the drive). - Reworked the command line handler in restore to walk through the arguments one at a time. This makes the file= entries work correctly. Also reworked the code that takes the MediaType and finds a storage device. - Add quit command to restore tree handler. - Make restore tree handler remember if a hard link is present, and in doing a mark, only get database entry if there is a hard link. mark commands thus run at least 2 orders of magnitude faster. - Add files=xxx field to run command submitted for restore. - Add yes to restore run command if either yes or run is command line argument. - Make "yes" on command line argument skip prompt for modification of run job. - Add markdir and unmarkdir -- both affect only the directory in question and do not do a recursive descent. - Make tree command automatically mark all higher level directories to be restored when a directory or a file is selected. Such directories are indicated by preceding the name with a + to indicate that only the directory entry is selected and not the whole directory tree. - Modify a few tree commands to walk through all arguments rather than just taking the first one. - Improved btape "test" and "fill" commands. - The ability to ask the Storage daemon on a device by device basis to "poll" the tape drive at a given interval (minimum 1 minute). If a tape is found, its label is read and if appropriate it is used. This eliminates the need to do "mount" commands. - The ability to close and re-open the device when a poll occurs. This permits dealing with certain recalcitrant autochangers that invalidate devices (typically on FreeBSD). - Dan Langille has written a PostgreSQL driver for Bacula. - Implement "update slots scan" that reads the volume label(s). - The full form of the scan is "scan=1,2,4-5,7". With no specification, all occupied slots are scanned. - Turn off changer Volumes that are not current in the changer when an "update slots" is done, or if any tape operation discovers that the right volume is not in the slot. - The console program will run all commands it finds in ~/.bconsolerc at startup. - Add Dan Langille's changes to the bacula start/stop script that permit dropping root permissions just after startup. - New version 1.5.5-1 Cygwin. - Modify SD to update the catalog database when it is shutdown, even if the job is canceled. - Fixed seg fault in restore of multiple simultaneous jobs to a single Volume. - Fixed thread race problem in multiple simultaneous jobs to a single Volume where the volume label is not in the first tape block, so the tape is not recognized. - Restore directory tree automatically selects all higher level directories to be restored. - Implement conio.c to use in console program -- mini-readline. - Enhance "fill" command of btape -- simpler output. Use -v to cause last block to be dumped after write and after re-read. - Added an autochanger test to the btape "test" command. It is automatically invoked if the autochanger is properly configured. It is still a bit primitive but covers the essential of testing the mtx-changer script with your autochanger. - Select the oldest LastWritten volume during recycling. - Added forward space file test to btape "test" command. - All 1.32d patches applied. - Fixed seg fault in restore of multiple simultaneous jobs to a single Volume. - Fixed thread race problem in multiple simultaneous jobs to a single Volume where the volume lable is not in the first tape block, so the tape is not recognized.