Technical notes on version 1.25 26Aug02 28 August 2002 Kern Sibbald General: - Bacula backups now run up to 12 times faster than version 1.24 - Bacula can run multiple simultaneous Jobs. - Had to turn off TRANSACTIONS in SQLite because it doesn't work with multiple simultaneous jobs (I'm working on this). - Added a better Job printout for Restore Jobs. - Added a save/restore Rate to backup and restore jobs. This does not yet subtract out operator wait time so it will be underestimated it the Job waits on the tape (mount/label). - Fixed a major bug caused by free()ing a buffer twice in the Restore code. This made the SD more or less useless after any restore Job. Arrggg! - DIR - SD protocol changed, both must be updated at the same time. - DIR - FD protocol changed in upward compatible way. Upgrade of FD not required, but recommended. Changes submitted this submission: - Added bell to "make" when errors are detected. - Changed default compile option from -g to -g -O2 - Additional documentation as usual -- much based on questions or feedback from users. Thanks. - Fixed example config files to use new syntax and to have a Restore Job. - Define ETIME to ETIMEOUT for Irix - Added JCR filed to DB structure permitting direct printing error messages from within the Database subroutines. Some error messages may be printed twice as a consequence. When I see them or someone reports them, I will remove the double. - Added JCR to the bsock structure. This allows direct printing of network errors from within the network code. - Made most "trivial" debug messages have level 100 or greater. This allows for easier debugging of new code using the range below 100. - Began replacing all Emsg() with Jmsg() using a NULL as the JCR in Jmsg() is the same as Emsg(). - Fixed several crashes in the Director because of malformed config files. - Added SpoolAttributes to Job resource. - Pass CatalogFiles to SD. If set to no, the attributes are dropped within the SD rather than being sent to the DIR. - Cleaned up a number of information/error messages in user interface. This includes eliminating the "pretty please" response in favor of "yes/no" to delete volumes and pools. - Cleaned up quite a number of uninitialized variables reported when going to -O2, most were harmless, but a couple could cause problems. - The cd command in restore was not working correctly (it didn't allow some legal cds). - Fixed a segmentation violation in the directory tree handling code in the restore command. - Handle a few error conditions in the restore command better. - Permit "Where" to be set to nul in modification of a run command. - Clarified the error message for Verify if an InitCatalog has not previously been done -- thanks Chuck. - Add MaximumConcurrentJobs to FD. - Added code to mem_pool to die if a buffer is released twice. - Lots of work done on SD for multiple simultaneous jobs. Split device.c into device.c, mount.c and acquire.c - Started writing new lock code for SD, but may back it out -- needs more thought. Current code works, but is too complicated. Maybe can simplify it. - Cleaned up the SD tools code quite a bit. Added bootstrap to all tools. - Ensure that tape session labels are not split across two blocks. This makes reading them back much easier. - Fixed another restore bug concerning tape labels on multi-volume saves.