From: Kern Sibbald Date: Wed, 2 Aug 2006 15:42:45 +0000 (+0000) Subject: kes Change the name of the technical notes file from kes-1.39 to X-Git-Tag: Release-2.0.0~678 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=eea5026f2da2dcb394d5165aeeec493357f681ba;p=bacula%2Fbacula kes Change the name of the technical notes file from kes-1.39 to technotes-1.39. Prefix my messages with 'kes '. kes Allow dequeue_messages() to be called twice. Should fix bug # 649. kes Add Job type to bscan Job information output. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@3227 91ce42f0-d328-0410-95d8-f526ca767f89 --- diff --git a/bacula/kernstodo b/bacula/kernstodo index 9379461ad5..cfc50cb979 100644 --- a/bacula/kernstodo +++ b/bacula/kernstodo @@ -24,11 +24,14 @@ Document: - Add example of proper index output to doc. show index from File; - Correct the Include syntax in the m4.xxx files in examples/conf +- Document JobStatus and Termination codes. Priority: For 1.39: +- Try turning on disk seek code. - Possibly turn on St. Bernard code. +- Fix bscan to report the JobType when restoring a job. - Fix bextract to restore ACLs, or better yet, use common routines. - Do we migrate appendable Volumes? @@ -38,7 +41,6 @@ For 1.39: - Fix re-read of last block to check if job has actually written a block, and check if block was written by a different job (i.e. multiple simultaneous jobs writing). -- JobStatus and Termination codes. - Some users claim that they must do two prune commands to get a Volume marked as purged. - Print warning message if LANG environment variable does not specify @@ -61,7 +63,6 @@ For 1.39: Low priority: - Get Perl replacement for bregex.c - - Given all the problems with FIFOs, I think the solution is to do something a little different, though I will look at the code and see if there is not some simple solution (i.e. some bug that was introduced). What might be a better diff --git a/bacula/kes-1.39 b/bacula/kes-1.39 deleted file mode 100644 index 39f2b9812f..0000000000 --- a/bacula/kes-1.39 +++ /dev/null @@ -1,992 +0,0 @@ - Technical notes on version 1.39 - Kern Sibbald - -General: -01Aug06 -kes Update copyright date in program files, and for the most part - put it on a #define. -kes Implement %q in bsnprintf.c apparently I forgot it. -31Jul06 -kes Make disk-changer sed command compatible with FreeBSD. -kes Make a first cut at a ReleaseNotes and ChangeLog for a - beta release. -kes Make make clean decend into the src/win32 directory. -kes Fix some #ifdefing so that Solaris and FreeBSD compile - sys/stat.h was turned off. -kes Use suffix editing for new transfer rate messages. -kes Attempt to come up with a workaround which seems to be an OS - bug where write() returns EBUSY. IMO this should not happen. - It triggered in truncatebug test. The workaround retries using - a 100 ms wait. -kes Eliminate a strerror() call in a class method that failed with - older C++ compilers. -kes Use rm -rf rather than rmdir to delete the src/win32/release - directory during make clean. -30Jul06 -kes Make bscan ignore ACL streams. -kes Update projects files with new Feature Requests. -kes Generate current English and French manuals and upload - them to the site. -kes Update the home page to include the new British/French flags to - switch between translations. Work done by Alexandre Baron. -kes Make disk-changer script print an error message if the changer - directory is not defined. -kes Create a generic DB routine for getting an int (32/64 bit) from - the DB. -kes Add more migration code. -kes Add a few more files to .cvsignore here and there. -kes Minor fixes for SD write rate and despooling rate. -kes Turn off new test code in src/console.c - -Version 1.39.18 -29Jul06 -- Incremented the version number to signify that all of Robert's code - for Win32 that was in the branch is now integrated into the HEAD, - and that Eric has submitted code that we hope will provide limited - backward compatibility with 1.38 file daemons (more testing to be - done). -- I rationalized a few of the names of the variables (mainly jcr names) - that are used during migration as keeping three different jcrs at the - same time clear in one's head is not easy. - -Version 1.39.17 -28Jul06 -- Tweak new runscript feature to work with 1.38.x FDs. -- Correct crypto.c to fix segfault when restoring an encrypted stream - on fd which don't use rsa keys. -- Add yes/no english keywords on localised yes/no questions. -27Jul06 -- Several important commits from Robert Nelson for code cleanup and - Win32 build. -- Modify console.c so that when conio is enabled, it converts \n to - \n\r before outputting to the console. Hopefully this will fix - the problems with expect in Perl that Eric saw. -24Jul06 -- Change cats/sql.c to elimate %-*s format, which I think is turned - off in bsnprintf. -- Add Comment field to llist of a volume. -- Allow true/false in some yes/no questions. -- Implement update volume enable=(on|off|true|false|archived|0|1|2) -- Remove a few /n's when scanning commands from another daemon. This - permits adding additional fields later. -- Modify dbcheck to handle ctl-d and to delete Log table entries. -- Update README.mingw -22Jul06 -- Tweak authentication to work with 1.38.x FDs. -- Tweak catalog make scripts. -- Fix catalog upgrade scripts so that they work. -- Correct despooling debug code to eliminate race condition. -19Jul06 -- Add additional fields as specified by Arno to LocationLog. -- Add comment field to the Media record. -- Add Time field to the Log record. -- Correct migration SQL (thanks to Bill Moran) so that it - runs with PostgreSQL also. -- Add spooling/despooling info in status output of SD. -17Jul06 -- Spend a lot of time integrating mkcdrec with the rescue disk. -- Add VOLMGMT message class for volume management messages (none yet). -- Add CATALOG as a destination. It goes into the LOG table. -- Implement the Log table in the DB. -- Implement the Location Log table in the DB (for user use). -- At Eric's request add a run_scripts() just after blast_data in - src/filed/job.c -10Jul06 -- Add Enabled column to Location, correct some typos in DB schemas. -- Correct bug I introduced into RunScripts enum. -- Add log table to Catalog -- Purge original job migrated if the migration terminates normally. -- Cleanup purging of files/jobs so that it is done only in a - single subroutine. -- Add new VOLMGMT message class. -- Add Catalog message destination (user conf code remains to be written). -09Jul06 -- Modify read_record and friends to properly deal with migration - needs. -- Update debug code in read_record. -08Jul06 - ======================= Warning ========================== - Separate read and write storage in Jobs in the Director. This - is a major rewrite of some of the low level code and hence has - a high probability of introducing bugs. - ========================================================== - -- Move the job init code up to *before* the job is put into - the job queue (resource allocation queue). This permits the - job to establish whether it will read or write or do both. -- Add name() methods to all the resource classes. -- Implement separate read and write storage resource - allocation/deallocation in jobq.c - - ======================= Warning ========================== - Implemented new method of getting the default Storage from the Media - record rather than from the MediaType for restore. As a fall - back, if no Storage is defined, use the MediaType. This - eliminates most all prompts if there are multiple MediaTypes - used. This is an important and fundamental change. - ========================================================== - -- Add more detail (Storage, Device) to list of volumes printed - for restore. -- More code in migrate. In particular start multiple jobs if - migrating a volume. -- Probably overkill, but ensure that the bsr is unique even within a - job in FD and SD. -- Rework bsys.c drop() so that it now should work as expected. -- Update a bunch of old copyrights -- particularly in .h files. -- Remove src/lib/bshm.c/h -05Jul06 -- Migration fixes -04Jul06 - ======================= Warning ========================== - All hash codes in the database are now kept in world - compatible base64 format (no = filling). This means that - all FileSets will be updated and if you are running - verify jobs, you must do an InitCatalog. - Authentication uses the new algorithm, but should be - backward compatible with 1.38.x - =========================================================== - -- Modify the authentication routines so that the 1.39.15 Director - always runs with the compatible binary to base64 code (same as - the rest of the world). It will however detect if an SD or - FD is running the old code and if that is the case, will use - the old algorithm for authentication. However, all consoles must - use the compatible algorithm, and all data entered into the database - (all hash signatures, MD5, SHA1, ..., and all FileSet hashes) will - use the compatible algorithm. -- Rename the cram_md5 routine names to be slightly more appropriate - to what they are doing (challenge and respond). -- Robert committed his #ifdef and header cleanup. -30Jun06 -- Fix a complier warning in files/backup.c -- Cleanup NOT NULL vs DEFALT 0 in database creation. -- Tweak btape. -- Robert committed his low impact changes. -- I removed a size_t from the jcr.h definition. -- Update the tape regression scripts (still to be tested). -- Add gcc and gcc-c++ requires to srm as suggested by a user. -- Require done or quit to exit from in memory tree restore. -26Jun06 -- Write install/uninstall of new manpages. There are now a - pile of man pages. Some of which need a lot of work. - - ======================= Warning ========================== - The --mandir ./configure option now points to the top level - man directory. The man files will be installed under - mandir/man8 and mandir/man1 as appropriate. - ========================================================== - -- Add complete text of GPL to LICENSE. -- Implement job report that indicates where Storage and Pool - came from -- with overrides and Pool storage and NextPool, - it is all very complicated. -- Create a few common subroutines for backup.c and migrate.c -- Eliminate warning messages from tray-monitor.c -25Jun06 -- Apply fix for scheduler for missing unlock_jobs(). -- Clean out autoconf caches before rebuilding configure -- Fix the FreeBSD pthreads lib define updated by Dan. -- Add missing semicolon in src/console/console.c -- Add Robert's enhanced version of build-win32-cross-tools - as well as his patch file. -- Note, the new gcc options are likely to break building of - wx-console or the tray-monitor ... -24Jun06 -- Implement Robert's suggestion to suppress printing compile lines. -- Detect GCC correctly (I hope) -- If using GCC (actually g++) add the following compiler flags - -fno-strict-aliasing -fno-exceptions -fno-rtti - - ===================== Warning ============================= - Turn on new bsnprintf() code. This could cause print output - to look different. - =========================================================== - -- Fix crypto when not using openssl. I previously overlooked this. -- Eliminate crypto type punning problems by eliminating void * and - using uint8_t * instead. -- Harden authentication failure in FD by single threading errors - and forcing a 6 second wait. - - ===================== Warning ============================= - Removed "Accept Any Volume" directive. - =========================================================== - -- Major cleanup and simplification of regress using shell functions - (more tests to be converted to new format) -- Add detection of 64 bit Irix as indicated by user. -- Increment catalog database id from 9 to 10. -- Add a few of the new database fields to the various C++ - structures. -- Implement code to fill in the most important new fields (e.g. - Media Enable). -- Ensure that most of the new fields are in create/get/insert/update. - More work to be done. -22Jun06 -- Update some very old licenses in src/cats. -- Modify the database format for handling Migration jobs: - Add PriorJobId, RealEndTime to Job table - Delete MAC table - Remove Stripe from JobMedia record (not used, wasting space) - Add ScratchPoolId, RecyclePoolId, Enabled to Media record - Add Cost to Location table. -- Delete mac_record subroutines. -- Add new table values to create/update/get routines as appropriate. -- Update the update_tables and make_tables scripts. -- Make a first cut in using a union where multiple pointers (actually - pointers to pointers) are stored. -- Make some changes to base64.c suggested by Robert and others and add - a small amount of documentation. -- Add some changes suggested by Peter for Solaris (bregex...) -- Make runscript.h always built because it needs to be pulled into - more places. In particular its RES was left out of a union. -- Renumber the enum{} list in runscript.h to avoid starting from zero. - This makes it slightly easier to detect uninitialized variables. -14Jun06 -- Remove xpg4 lib from FreeBSD build as it is no longer needed and - sometimes creates install problems. -- Change a couple of %T in strftime to %H:%M:%S as seen in Robert - Nelson's code. More to do. -- Convert a few store_bit to store_bool in filed_conf.c. -- DVD tweak to block.c as supplied by Uwe Muessel. -04Jun06 -- Modify configure.in to check for typeof(). -- In findlib/attribs.c use typeof instead of templates if possible. -01Jun06 -- Implement partial error messages for src/filed/acl.c -- Fix return code to fail when doing update barcodes and - Pool resource is not found. This previously caused Volumes - to be labeled as cleaning tapes. -- Small updates to projects. -27May06 -- Add Eric Bollengier patch for new RunScript directive. It breaks - compatibility between dird and fd. -26May06 -- Prevent DVD code from rewriting label if the device cannot be - opened read/write. -- Used __GNUC__ to detect GNU g++ as suggested by John Goerzen to - fix Debian build bug. -- Fix Dir/SD run race in migrate.c, verify.c, and restore.c -- Integrate manpages contributed by Jose Luis. -- Update projects file. -- Add manpages Makefile.in to configure.in -- Remove installation of bacula.8 in scripts directory. -24May06 -- Implement patch submitted by cesarb in bug #606 to implement O_NOATIME - support. - O_NOATIME is a open() flag which makes it possible to read a file without - updating the inode atime (and also without the inode ctime update which - happens if you try to set the atime back to its previous value). It also - prevents a race condition when two programs are reading the same file, but - only one does not want to change the atime. It's most useful for backup - programs and file integrity checkers (and bacula can fit on both - categories). - - Recent versions of the Linux kernel and glibc have support for it (the - glibc support being mostly copying the O_NOATIME definition to - bits/fcntl.h). If there's no support for it on the kernel, trying to use - it does nothing (since the kernel ignores unknown flags). - - If the kernel has support for it, trying to use it either works, fails - silently (mostly in remote filesystems), or returns errno=EPERM (if you - are not either the owner of the file or root). A simple way to prevent the - failure is to open the file without the flag and set it later with - fcntl(F_SETFL), ignoring any EPERM errors. -- Applied patch posted by Jaime Ventura to bug #570 to correct failure - of restarted jobs to complete (due to a destroyed pthreads conditional - variable used by the message thread). -- Fixed bug #619 where Bacula would not restart jobs with MaxRestartTimes - set to zero. -- Apply patch from John Goerzen bug #611 to fix bad manual links in the code. -- Apply patch from Rudolf Cejka bug #614 to removed trailing - colons in query.sql file. -- Apply patch from Rudolf Cejka bug #613 to correct prunning of files - not to create orphans. -- Apply patch from Rudolf Cejka bug #617 to use mtime instead of ctime - in restore long listing. -- Apply patch from Rudolf Cejka bug #609 to use MarkId in verify.c instead - of incorrect MarkedId. -- Apply patch from adioso bug #616 to correct text in manual (replace - Director with File daemon). -- Rework a few of the zlib changes so that they build properly. - -21May06 -- Move DIR "run" command to SD before starting the message thread - as suggested by Cristopher Hull to avoid a race deadlock from - two threads using the bsock structure. -- Modify LICENSE to correct some problems pointed out by Debian. -05May06 -- Correct EOF with no \n lex.c problem. -- Tweak compat.h compat.cpp and merge with apcupsd -- Add additional INFO messages if autochanger cannot be used. - -02May06 -- Simplify Win32 Makefile -- Correct count of buffers/bytes used by smartall.c -- Updated compat.h after porting apcupsd to MinGW. -01May06 -- Work on getting wx-console building on MinGW. wxWidgets now builds - started adding Makefile ... -- Moved MinGW library objects to src/win32/lib to reduce clutter. -30Apr06 -- Reloading a bad configuration file doesn't kill director any more. - Thanks to fix from Eric Bollengier. -29Apr06 -- Fix problem of accents with new Win32 code. -- Integrate Howard's VSS patch. Tweak it a bit. VSS now - works in the MinGW build with the exception that there - is a problem with accented characters -- i.e. there is - some mapping problem with wide characters. -- The code no longer compiles with Microsoft VC++. -28Apr06 -- Start implementing Christopher's St.Bernard code. -- Add Christopher's mods for opening files. -- Strip \r \n from Win32 error messages (Christopher) -- Add more info about Win32 system if unknown (Christopher) -- Use bstrn(cpy, cat) routines to avoid overrun in compat.cpp -- Fix a number of incorrect strings marked for translation, when - they should not be (e.g. commands). -- Fix StartTime bug reported for ClientRunBeforeJob and RunBeforeJob - Patches supplied by user in bugs #608 and #599. -- Use most recent of st_ctime and st_mtime in restore tree DIR - listing. This fixes some problems with Win32 printing incorrect - values. -- Correct the clock shift comm time calculation between the DIR - and the FD. It was added rather than subtracted. -- Strip all backslashes in filenames to be restored on Win32 - machines -- the names should all be in Unix format, and if - there are any backslashes it is most likely due to an improper - FileSet definition, and the files will not otherwise be - restorable. -- Remove lib/regex.c (replaced by bregex.c). -- Delete src/win32/License.txt -- Modify installer to install LICENSE -26Apr06 -- Fix bug in build-win32-cross-tools script reported by Howard -- Implement cross compiled bconsole -25Apr06 -- Fix barcode test, eliminate BOOL (doesn't exist on Linux). -- Write first cut of README.mingw32 -- Add back ua_label barcode fix from Rufolf Cejka. -- Integrate the majority of the Mingw cross-tools submission - made by Howard Thomson. Everything compiles, with zlib, openssl, - and VSS turned off. Linking needs a pthreads library ... -23Apr06 -- Add 'Dir Status' button to the gnome console. -- More work on migration. -- Restore non-compatible base64 coding to permit compatibility. -- Display heap stats in Storage daemon without debug level. -22Apr06 -- Integrate most of the MinGW changes -- more to do. -21Apr06 -- Implement using pg_config for finding PostgreSQL files. - Fixes bug #600. Patch supplied by user. -- Remove -t option from mktemp in mtx_changer.in and use - working directory. Fixes bug #578. -- Update job start time after the any run before job so that - files created by the script are only backed up once. Fixes - bug #599. -- Strip trailing newline only from filenames entered in - the restore command when reading a file. This permits - the user to enter filenames with trailing spaces. Fixes - bug #549. The user supplied a patch that I modified slightly. -- Use the most recent time (st_mtime, st_ctime) in the dir - command in restore. This gives the user a better idea of what - the newest file really is. This fixes bug #574. The fix - was suggested by the user. -- Implement a compatible version of base64. This permits external - programs to duplicate Bacula's base64 algorithm using standard - routines. This fixes bugs #296, and 565. Patch submitted by - author of bug #565. - ================= Note ======================== - Previous Signatures stored in the database are no longer - compatible with this. The main downside is for Verify jobs, - and doing an InitCatalog run will fix the problem. Also, the - authentication between the deamons is changed, so all daemons - must be simultaneously upgraded. - ============================================== - If you don't like this fix, set: - const bool compatible = true; - to - const bool compatible = false; - in src/lib/base64.c -20Apr06 -- Ensure that DB signature is never NULL. -- Ensure that DB table names are not translated. -- Fix scheduler to handle time skew (eg daylight savings). -- Fix scheduler to use lock_jobs() to avoid most problems - with reload. Window is now milliseconds. -19Apr06 -- Apply patch from Christopher Hull - - Allow multiple connections to database with different - parameters. - - Invalidate the scheduler when doing a reload. Fixes seg - fault, but still 60 second window. - - Additional info in Reschedule message. - - Use set_jcr_job_status() everywhere to prevent loss of - cancel, error. - - Display peer IP in FD if error from connecting DIR. - - Don't increment file count for DIRBEGIN. - - Replace illegal characters in Win32 filename by _. - - Add SE_CREATE_PERMANENT_NAME privilege in Win32. - - Hash hard link filenames rather than linked list. - - Fix for security failure in chdir on Win32. - - Add CreateDirectoryA/W win32 API entry points. -- Add /silent option to Win32 FD for Install/Remove service. -- Always print Heap statistics in FD. -18Apr06 -- Remove the -f option from the chown in Makefile.in for more - portability. -- Change setting the group in Makefile.in to use chgrp for - more portability. -- Implement a write_store and read_store to replace - dirstore in reserve.c -- Implement a Bacula read/write lock for Python rather - than using the Python lock to avoid recursive problems. -- Correct the uninstall directory names in filed/Makefile.in - as reported by a user. -17Apr06 -- Correct some problems with database creation (new tables). -- Replace a bunch of old 0x%x by %p. -- Get first cut of Migration with Job selection working. -16Apr06 -- Change store_bit() to store_bool() for the Spooling in - dird_conf.c -- bug reported by Robert Nelson. -15Apr06 -- Correct Makefile bug found by Dan Langille. -14Apr06 -- Correct Makefile for Solaris /bin/sh -- Correct mtx-changer.in for Solaris /bin/sh -- Abort if a conf resource does not have a Name = -12Apr06 -- Change the name of the regex program to bregex. -- Add the bwild program to the tools directory. It is similar - to the bregex program. -- Implement create bregex.h and bregex.c in src/lib from the - Python regexp program. -- Use the new bregex.c to implement Regex expressions on Win32. -11Apr06 -- More work on migration. -- Implement wild program in tools directory for testing - wild-cards. Almost identical to the regex program. -- Up port VSS single thread locking code. -- Replace N_(..) by NT_(...) to inhibit translation of - commands. -- Modify Makefile to change the permissions on Working Directory - to 770 if the directory is created. -- Do not fail the Makefile if changing the permissions or - owner/group on WorkingDir fails. -- Remove early selection of Scratch Volumes in the recycling - algorithm. -- Correct the old recycling algorithm so that Scratch Volumes - are selected when looking for a Volume in the changer. -- Correct a typo in the Verify SQL reported by Joe Park. -10Apr06 -- Remove automatic case folding on Windows FDs. You must - explictly use the 'Ignore Case = yes' option. -- Remove the code added to 1.38.6 and 1.38.7 that pulls a - scratch volume in an Autochanger early in the 'recycling' - algorithm. -09Apr06 -- Make weof() and clrerror() methods of class DEVICE. -08Apr06 -- Tweak license to include Microsoft restrictions. -- Move mysql.reconnect to after real_connect(). Thanks to - Frank Sweetser for the patch. -- Disallow a backslash in a File = directive (Windows junk) - unless the string is quoted. -- Apply Eric's patch to ua_label.c so that daemon protocol - is not translated. -- Add NT_ definition for strings that should not be translated. -- Apply NT_() to ua_label.c -- Remove timed wait for VSS on Win2K3 as it is not yet - implemented. -- Correct bacula.in script to reference bacula-ctl-xx in the - sysconfig directory rather than the bin directory. -26Mar06 -- Fix a long standing bug in the bacula start/stop scripts. -- Attempt to add the new bacula-ctl-* files to the rpm. -- Switch to using typeof() for list traversing to avoid - as many FC5 g++ compiler warnings as possible. -25Mar06 -- Split the bacula start/start script into four files: - bacula -- starts and stops calling other scripts - bacula-ctl-dir -- starts/stops the director - bacula-ctl-fd -- starts/stops the File daemon - bacula-ctl-sd -- starts/stops the Storage daemon -24Mar06 -- Create datestyle fix for PostgreSQL. Fixes bug #574. -- Correct editing of JobId from int to int64 in fd_cmds.c -- Eliminate FileSet name race with bash_spaces() and multiple - threads by bashing in a local. -- Fix error return from 'use storage' to print a correct error - message rather than nothing. -- Correct false re-read last block error message when two jobs - are simultaneously writing at the end of a tape. -- Simplify exit conditions in the reserve.c code to avoid - possible non-release of reservation_lock(). -- Suffle lock order in reserve to avoid deadlock between - reservation lock and device mutex. -21Mar06 -- Initialize jcr mutex before first use. Thanks to Thorsten for - tracking this down for me !!!! as it broke the Win32 build. -20Mar06 -- Integrate addition of line count limitation to bsmtp -l from - Sebastian Stark -17Mar06 -- Implement regex test program in tools directory. -- Attempt to fix time problem with bsmtp with foreign langs. -- Add strip_trailing_newline() submitted by user. -- Implement regex matching in migrate.c -16Mar06 -- Fix bug #537 to allow arbitrary time to mount a volume for - restore, if polling is turned on. -- If dir_user or dir-group is specified in ./configure apply it to - the working-dir. Fixes bug #533. -- If rescheduling a job cancel the previous incarnation with the SD. - Fixes bugs #566 and 557. -- Fix bug #567 do_message() definition type conflict. - -14Mar06 -- Add more jcr methods and make mutex and use_count private. -- Create lock/unlock methods for jcr. -- Fix PostgreSQL bug doing sql_data_seeek() by explicitly reading - records to get to seek position. -- Integrate patch from bug #561 to correct conio.c signal definitions. -- Fix Rescheduling failed Jobs. Ensure that SD message thread - terminates correctly by doing pthread_kill(). Do not destroy - SD cond wait variable between executions of the job. Use local - mutex for cond variable to avoid blocking jcr chain. Fix poor - use of jcr use count in jobq.c for restarted jobs. -- Fix obsolete usage of foreach_dlist() to use foreach_jcr() in - lib/jcr.c -- prevents locking the jcr chaing. -- Apply patch from bug #564, which corrects listing volumes with - multiple autochangers. Apply same fix to next volume list. -- Fix bug #562 where restore bootstrap file is not unique. -- More details in implementing David's migration syntax proposal. -- Save and restore dcr when swapping drives so that if we have - a write dcr it is not lost. -- Use new routine lock_reservations() to lock the reservations - system, and call it while looking for a volume in askdir.c. - This could possibly fix bug #543. -- Stop SD command loop if job is canceled. - -08Mar06 -- Remove old code from findlib/create_file.c -- Rename mac.c migrate.c -- Add user friendly display of VolBytes in job report. -- Rename target... to previous... to make it a bit easier to - understand. -- Add selection type and selection pattern to Migration (idea - given by David Boyes). - -04Mar06 -- The po files should now be current. -- Fix new sql_use_result() code to properly release the - buffers in all cases. -- Use the keyword ujobid to mean the unique job id; job or jobname - to mean the Job name given on the Name directive, and jobid to - be the numeric (non-unique) job id. -- Allow listing by any of the above. -- Add the user friendly job report code for reporting job elapsed time - and rates with suffexes from John Kodis . -- Add Priority and JobLevel as Python settable items. -- Use TEMPORARY table creation where the table is created by - Bacula. -- Add new code submitted by Eric for waiting on specific jobid. -- Add ACL checking for the dot commands. -- Fix restore of writable FIFOs. -- Fix a bug in bpipe where the string was freed too early. -27Feb06 -- Modify the Python class examples to inherit object -- new way - of defining classes. Patch from Felix Schwarz. -- Implement jobuid to replace old usage of job in keywords as - suggested by Eric Bollengier. -- Apply patch for enhancing wait from Eric Bollengier. On can now: - wait (wait for all jobs to stop) - wait jobid=nn - wait jobuid=unique id - wait job=job-name -- Implement write variables for Python to set Priority (anytime), and - Job Level, only during JobInit event. -26Feb06 -- Fix the block listing bug pointed out by Arno. -- Update the po files at Eric's request. -24Feb06 -- Fix Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to - accept time qualifiers. -- Make catalog respect ACL. -- Add recycle count to Media record. - -Changes to 1.39.6-beta1 24Feb04 -23Feb06 -- Add Rudolf Cejka's new rc-chio-changer. -- Implement pulling Volume from Scratch Pool if the - Volume is in the autochanger. -- Implement additional command arguments for update Volume. - -Changes to 1.39.5 -22Feb06 -- Back port changes to 1.38.5 -- Fix recycle SQL for StorageId. -- Fix misplaced quote in mtx-changer script. -20Feb06 -- Note. Your database must be updated, or you must create - a new database. I have not yet incremented the database level. -- Add Location table. -- Add LocationId, DeviceId, and MediaTypeId to Media record. -18Feb06 -- Implement create/get mac record in database for adding extended - Migration data to the job record. -- Add new MAC table to update/make database scripts. -- Return Storage name used when getting VolumeNames for a job. -- Change bsr file keyword Storage to Device, which is more accurate. -- Ensure that Mac records are pruned/purged. -- Tweak SD tools to deal with changing media type. -- Integrate more dev.c subroutines as methods (e.g. strerror, bsr, ...) -- Pass pointer to dcr pointer to acquire_device_for_read() so - that the subroutine can switch devices, and hence dcrs. -- Modify the multiple MediaType read code to re-use the same - dcr when switching devices. This makes the code much more - robust. -- Integrate patch from Karl Hakimian that reads JobIds, FileIndexes - from a table for restore. -- Add Storage name to VolParams, but it really should be Device. -14Feb06 -- Add disk-changer to scripts directory + configure/Makefile -- Eliminate PoolId from jcr -- it is in jcr->jr.PoolId -- Implement store_bit scanner to replace store_yesno. Mostly done. -- Implement new store_bool that stores in a bool. -- Add true/false to yes/no conf directives. -- Make first cut at changing appropriate store_yesno to store_bool. -- Complete implementation of Pool storage devices. -- Move starting clones to job.c -- Move create_restore_bootstrap_file() to job.c -- Make copy_storage() more general to be able to handle - Pool storage. -- Cleanup a lot of migration code for manual running, including - using Pool storage. -- Move getting a scratch Volume into a subroutine. -- Make all places a Volume that is added to a pool to - respect max vols. -- Fix bug in autochanger recycle code (improper edit 64 bit). -- Fix segfault in restore command when no value specified. -- Start adding code to handle multiple MediaTypes in restore. -- Eliminate race condition in getting Volume name for - two drive autochanger. -- More debug code in autochanger. -- Add storage keyword to bootstrap file, add parsing. -- Move slot in bsr file into Volume record as there will be - a different slot for each Volume. -- Create reserve.h -07Feb06 -- Implement Pool storage overrides. -06Feb06 -- Implement first cut of Migration. -- Implement mysql_use_result() from patch by Karl Hakimian. - This reduces significantly the memory consumption during - the restore tree building, and hence runs faster too. -- Implement StorageId patch supplied by user (reggie) in bug - #536. This should permit Bacula to work correctly with two - autochangers. -- Implement Job listing variations suggested by a user. -- Move updating bootstrap code in backup.c to subroutine - update_bootstrap_file(). -- Add new job status elapsed time and bytes written user - friendly job report output patch sent by John Kodis - . -- Implement a storage list in Pools. -- Separate out setup_job() code from run_job(). -- Get migration working -- lots of changes in mac.c in both - DIR and SD. -- Apply patch from user (Eric Bollengier I think) that fixes a - DIR crash when no arguments are supplied to a dot command. -- Fix typo (strcpy->strcmp) in ua_prune.c as reported by Martin. -- Fix command arg name->volume in label command of gnome-console. -- Fix SD acquire.c to release correct DCR by explicitly testing - on the dcr address rather than trying to devine if it is a read - or write dcr. This failed in error conditions when the device was - not fully setup. - -30Jan06 -- Apply user supplied patch for more readable rate output - in job report. -- Continue implementing migration. -- Implement support for removable filesystems in SD. -- Ensure that btraceback scripts can be read by anyone. -- Replace dvd-freespace and dvd-writepart by dvd-handler. -- Correct bug where canceling restore before the FD contacts - the SD causes the drive to be left in read mode. -- Move ofline_or_rewind into DEVICE::close(). -- Eliminate close_device. -- Convert several dev subroutines to methods (e.g. bsf, - eod, ...) -- Eliminate force_close_device(). -- Implement Device Type directive in Device resource that - can have values File, Tape, Fifo, DVD, or Prog. -- Add has_cap() method to Device. -Changes to 1.39.4 -17Jan06 -- Add patch from bug #527 to allow RedHat user to specify - options/user/group for starting each daemon in - /etc/sysconf/bacula. -16Jan06 -- Add two new queries to query.sql provided by Arno. One - list volumes known to the Storage device, and the other - lists volumes possibly needing replacement (error, ...). -15Jan06 -- Add periodic (every 24 hours) garbage collection of memory - pool by releasing free buffers. -14Jan06 -- Correct bug counting sized (for display only) in smartall.c -- Print FD mempool stats if debug > 0 rather than 5. -12Jan06 -- Make db_lock() mutex error fail the job rather than abort - Bacula. Canceling the job caused the mutex to fail. -- Correct bug in alist.c that re-allocated the list if the - number of items goes to zero. -- Move the reservation system thread locking to the top level - so that one job at a time tries all possible drives before - waiting. -- Implement a reservation 'fail' message queue that is built - and destroyed on each pass through the reservation system. - These messages are displayed in a 'Jobs waiting to reserve - a drive' list during a 'status storage='. Note, multiple - messages will generally print for each JobId because they - represent the different problems with either the same drive - or different drives. If this output proves too confusing - of voluminous, I will display it only when debug level 1 - or greater is enabled in the SD. -11Jan06 -- Add enable/disable job=. This command prevents - the specified job from being scheduled. Even when disabled, - the job can be manually started from the console. -- During 'update slots' clear all InChanger flags where the - StorageId is zero (old Media records). - -Beta release 1.38.4: -09Jan06 -- Fix autochanger code to strip leading spaces from returned - slots number. Remove bc from chio-changer. -- Back port a bit of 1.39 crypto code to reduce diffs. -- Fix first call to autochanger that missed close()ing the - drive. Put close() just before each run_program(). Fixes - Arno's changer bug. -07Jan06 -- Add PoolId to Job record when updating it at job start time. -06Jan06 -- Pull in more code from 1.39 so that there are fewer file - differences (the new ua_dotcmds.c, base64.h, crypto.h - hmac.c jcr.c (dird and lib) lib.h md5.h parse_conf.c - util.c. Aside from ua_dotcmds.c these are mostly crypto - upgrades. -- Implement new method of walking the jcr chain. The - incr/dec of the use_count is done within the walking - routines. This should prevent a jcr from being freed - from under the walk routines. - - -Changes to 1.39.3: -04Jan06 -- Start implementing Verify list output. -- Move the suitable_drive flag to a better place to prevent - premature termination of the reservation if all drives - are busy -- should fix Arno's diff/inc pool failures. -26Dec05 -- Add mutex to single thread VSS code in Win32. -22Dec05 -- 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. -21Dec05 -- 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. -- Delete old bnet packet code. -- Ignore new BNET_START_SELECT and BNET_END_SELECT signals in - wx-console. -- not implemented because bconsole must be updated. -- Modify restore command in wx-console to set gui on and to use - only .messages instead of messages. Hopefully this fixes bug - #514. -- Fix seg fault in exit of acquire when canceling a job -- - reported by Wolfgang Denk -- Pull in latest reservation system changes from 1.38 -- Make .messages command always print messages regardless - of the automessages flag. -17Dec05 -- Fix seg fault if user labels a drive directory bug #513 -- Remove quotes around Version as it breaks things. -16Dec05 -- 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. -14Dec05 -- Correct reservation system to do a last ditch try - for any mounted volume, then anyone anywhere. -- Add quotes around table Version because of - error in MySQL 4.1.15 -- bug report submitted. -- Correct some minor problems with btape in the fill - command. -- 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. -13Dec05 -- 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. - -Changes to 1.39.2: -13Dec05 -- Add stubs for non-crypto build. -12Dec05 -- Use localhost if no network configured -11Dec05 -- Eliminated duplicate MaxVolBytes in cat update -- bug 509. -- Remove debug print. -- Add bail_out in error during state file reading. -10Dec05 -- Merge changes made to 1.38.3 into HEAD -- Add stubs for pygtk-console code -- Create Makefile.in for pygtk-console code -09Dec05 -- Merge updates into 1.38 branch -- Update specs to include mysql4 define. -- Fix when attributes are sent, must be after binit(). -- Stop read_record() if status not ok in second loop. -- 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. -08Dec05 -- Fix Win32 built to work with new crypto code. -- 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. -07Dec05 -- 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. -- Modify most restore error messages to be queued so that they - appear at the end of the job rather than mixted with the restore - listing where they could be "lost". -06Dec05 -- 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. -- Add sanity check in append.c to ensure that dcr is not NULL. - This can happen if multiple drive autochanger SCSI control - channel and drive indicies do not correspond. -05Dec05 -- 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. -- Add back index code so that two drive autochangers can get - a second tape. -- Change a bunch of debug levels to aid debugging autochangers. -- Fix reservation so that mutexes are properly applied. -- Rework reservation algorithm so that two drives can be used - at the same time. -04Dec05 -- Landon merged his data encription changes into the HEAD -- 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. -Changes to 1.39.1: -03Dec05 -- 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. -29Nov05 -- Add Migrate, Copy, Archive Job types (some where there) -- Correct some more editing of JobId's (for 64 bit compatibility). -- Ensure that StorageId is stored in Media record when ever possible. -- Add Migration Job to Job. -- Add Migration Time, Migration High Bytes, Migration Low Bytes - Next Pool to Pool resource. -- Add more code to mac.c (migration archive copy). -- Change Start Storage daemon job to require read and write storage - pointers. -- Pass read storage data to SD as well as write storage data. -- 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. -- Add read output to Status in SD. -Changes to 1.39.0: -23Nov05 -- Add red-black btree routines -21Nov05 -- Remove abs() in bfile.c so that it compiles on Solaris. - Bug #491. -20Nov05 -- 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. -14Nov05 -- Apply SunOS patch for ACLs submitted by David Duchscher. -- Make sure to set storage before trying to set drive. -- Add bacula_mail_summary.sh to examples directory. It makes - a single email summary of any number of jobs. Submitted - by Adrew J. Millar. -- Make sure when we do a mount to unblock the device even - if the drive could not be opened. -13Nov05 -- Remove the USE_WIN32STREAMEXTRACTION #defines (always on) - and correct a few minor problems to make it build on Linux. -10Nov05 -- Remove delete of CVS from all Makefiles -- Fix seg fault when clicking on Add button in wx-console - restore panel. Bug #470. -- Fix copyright date and URL typo -- bug #468. -- Change autostart install for FreeBSD to look for rc.conf - rather than rc.local as suggested fix for bug #466. -- Apply patch supplied by Eric Bollengier to fix PostgreSQL - grant on status. Bug #465 -- Apply patch supplied by Eric Bollengier to fix PostgreSQL - update script. Bug #464 -- Tweak #ifdefing a bit in new Win32 stream code. -- Fix #ifdeffing for FD_NO_SEND_TEST. -- Add documentation of performance #defines diff --git a/bacula/src/lib/message.c b/bacula/src/lib/message.c index ca15715c63..6188e54edf 100755 --- a/bacula/src/lib/message.c +++ b/bacula/src/lib/message.c @@ -1289,12 +1289,18 @@ void dequeue_messages(JCR *jcr) { MQUEUE_ITEM *item; P(msg_queue_mutex); + if (!jcr->msg_queue) { + goto bail_out; + } jcr->dequeuing = true; foreach_dlist(item, jcr->msg_queue) { Jmsg(jcr, item->type, item->mtime, "%s", item->msg); } jcr->msg_queue->destroy(); + jcr->msg_queue = NULL; jcr->dequeuing = false; + +bail_out: V(msg_queue_mutex); } diff --git a/bacula/src/stored/bscan.c b/bacula/src/stored/bscan.c index 16b17d291d..eb7856fdcc 100644 --- a/bacula/src/stored/bscan.c +++ b/bacula/src/stored/bscan.c @@ -1072,8 +1072,8 @@ static int update_job_record(B_DB *db, JOB_DBR *jr, SESSION_LABEL *elabel, return 0; } if (verbose) { - Pmsg2(000, _("Updated Job termination record for JobId=%u TermStat=%c\n"), jr->JobId, - jr->JobStatus); + Pmsg3(000, _("Updated Job termination record for JobId=%u Level=%s TermStat=%c\n"), + jr->JobId, job_level_to_str(mjcr->JobLevel), jr->JobStatus); } if (verbose > 1) { const char *term_msg; diff --git a/bacula/src/version.h b/bacula/src/version.h index 4d3b26caf8..a27fae9f71 100644 --- a/bacula/src/version.h +++ b/bacula/src/version.h @@ -30,7 +30,7 @@ /* #define DEBUG_MUTEX 1 */ /* Check if header of tape block is zero before writing */ -#define DEBUG_BLOCK_ZEROING 1 +/* #define DEBUG_BLOCK_ZEROING 1 */ /* #define FULL_DEBUG 1 */ /* normally on for testing only */ diff --git a/bacula/technotes-1.39 b/bacula/technotes-1.39 new file mode 100644 index 0000000000..8781e0d40d --- /dev/null +++ b/bacula/technotes-1.39 @@ -0,0 +1,997 @@ + Technical notes on version 1.39 + +General: +02Aug06 +kes Change the name of the technical notes file from kes-1.39 to + technotes-1.39. Prefix my messages with 'kes '. +kes Allow dequeue_messages() to be called twice. Should fix bug + # 649. +kes Add Job type to bscan Job information output. +01Aug06 +kes Update copyright date in program files, and for the most part + put it on a #define. +kes Implement %q in bsnprintf.c apparently I forgot it. +31Jul06 +kes Make disk-changer sed command compatible with FreeBSD. +kes Make a first cut at a ReleaseNotes and ChangeLog for a + beta release. +kes Make make clean decend into the src/win32 directory. +kes Fix some #ifdefing so that Solaris and FreeBSD compile + sys/stat.h was turned off. +kes Use suffix editing for new transfer rate messages. +kes Attempt to come up with a workaround which seems to be an OS + bug where write() returns EBUSY. IMO this should not happen. + It triggered in truncatebug test. The workaround retries using + a 100 ms wait. +kes Eliminate a strerror() call in a class method that failed with + older C++ compilers. +kes Use rm -rf rather than rmdir to delete the src/win32/release + directory during make clean. +30Jul06 +kes Make bscan ignore ACL streams. +kes Update projects files with new Feature Requests. +kes Generate current English and French manuals and upload + them to the site. +kes Update the home page to include the new British/French flags to + switch between translations. Work done by Alexandre Baron. +kes Make disk-changer script print an error message if the changer + directory is not defined. +kes Create a generic DB routine for getting an int (32/64 bit) from + the DB. +kes Add more migration code. +kes Add a few more files to .cvsignore here and there. +kes Minor fixes for SD write rate and despooling rate. +kes Turn off new test code in src/console.c + +Version 1.39.18 +29Jul06 +- Incremented the version number to signify that all of Robert's code + for Win32 that was in the branch is now integrated into the HEAD, + and that Eric has submitted code that we hope will provide limited + backward compatibility with 1.38 file daemons (more testing to be + done). +- I rationalized a few of the names of the variables (mainly jcr names) + that are used during migration as keeping three different jcrs at the + same time clear in one's head is not easy. + +Version 1.39.17 +28Jul06 +- Tweak new runscript feature to work with 1.38.x FDs. +- Correct crypto.c to fix segfault when restoring an encrypted stream + on fd which don't use rsa keys. +- Add yes/no english keywords on localised yes/no questions. +27Jul06 +- Several important commits from Robert Nelson for code cleanup and + Win32 build. +- Modify console.c so that when conio is enabled, it converts \n to + \n\r before outputting to the console. Hopefully this will fix + the problems with expect in Perl that Eric saw. +24Jul06 +- Change cats/sql.c to elimate %-*s format, which I think is turned + off in bsnprintf. +- Add Comment field to llist of a volume. +- Allow true/false in some yes/no questions. +- Implement update volume enable=(on|off|true|false|archived|0|1|2) +- Remove a few /n's when scanning commands from another daemon. This + permits adding additional fields later. +- Modify dbcheck to handle ctl-d and to delete Log table entries. +- Update README.mingw +22Jul06 +- Tweak authentication to work with 1.38.x FDs. +- Tweak catalog make scripts. +- Fix catalog upgrade scripts so that they work. +- Correct despooling debug code to eliminate race condition. +19Jul06 +- Add additional fields as specified by Arno to LocationLog. +- Add comment field to the Media record. +- Add Time field to the Log record. +- Correct migration SQL (thanks to Bill Moran) so that it + runs with PostgreSQL also. +- Add spooling/despooling info in status output of SD. +17Jul06 +- Spend a lot of time integrating mkcdrec with the rescue disk. +- Add VOLMGMT message class for volume management messages (none yet). +- Add CATALOG as a destination. It goes into the LOG table. +- Implement the Log table in the DB. +- Implement the Location Log table in the DB (for user use). +- At Eric's request add a run_scripts() just after blast_data in + src/filed/job.c +10Jul06 +- Add Enabled column to Location, correct some typos in DB schemas. +- Correct bug I introduced into RunScripts enum. +- Add log table to Catalog +- Purge original job migrated if the migration terminates normally. +- Cleanup purging of files/jobs so that it is done only in a + single subroutine. +- Add new VOLMGMT message class. +- Add Catalog message destination (user conf code remains to be written). +09Jul06 +- Modify read_record and friends to properly deal with migration + needs. +- Update debug code in read_record. +08Jul06 + ======================= Warning ========================== + Separate read and write storage in Jobs in the Director. This + is a major rewrite of some of the low level code and hence has + a high probability of introducing bugs. + ========================================================== + +- Move the job init code up to *before* the job is put into + the job queue (resource allocation queue). This permits the + job to establish whether it will read or write or do both. +- Add name() methods to all the resource classes. +- Implement separate read and write storage resource + allocation/deallocation in jobq.c + + ======================= Warning ========================== + Implemented new method of getting the default Storage from the Media + record rather than from the MediaType for restore. As a fall + back, if no Storage is defined, use the MediaType. This + eliminates most all prompts if there are multiple MediaTypes + used. This is an important and fundamental change. + ========================================================== + +- Add more detail (Storage, Device) to list of volumes printed + for restore. +- More code in migrate. In particular start multiple jobs if + migrating a volume. +- Probably overkill, but ensure that the bsr is unique even within a + job in FD and SD. +- Rework bsys.c drop() so that it now should work as expected. +- Update a bunch of old copyrights -- particularly in .h files. +- Remove src/lib/bshm.c/h +05Jul06 +- Migration fixes +04Jul06 + ======================= Warning ========================== + All hash codes in the database are now kept in world + compatible base64 format (no = filling). This means that + all FileSets will be updated and if you are running + verify jobs, you must do an InitCatalog. + Authentication uses the new algorithm, but should be + backward compatible with 1.38.x + =========================================================== + +- Modify the authentication routines so that the 1.39.15 Director + always runs with the compatible binary to base64 code (same as + the rest of the world). It will however detect if an SD or + FD is running the old code and if that is the case, will use + the old algorithm for authentication. However, all consoles must + use the compatible algorithm, and all data entered into the database + (all hash signatures, MD5, SHA1, ..., and all FileSet hashes) will + use the compatible algorithm. +- Rename the cram_md5 routine names to be slightly more appropriate + to what they are doing (challenge and respond). +- Robert committed his #ifdef and header cleanup. +30Jun06 +- Fix a complier warning in files/backup.c +- Cleanup NOT NULL vs DEFALT 0 in database creation. +- Tweak btape. +- Robert committed his low impact changes. +- I removed a size_t from the jcr.h definition. +- Update the tape regression scripts (still to be tested). +- Add gcc and gcc-c++ requires to srm as suggested by a user. +- Require done or quit to exit from in memory tree restore. +26Jun06 +- Write install/uninstall of new manpages. There are now a + pile of man pages. Some of which need a lot of work. + + ======================= Warning ========================== + The --mandir ./configure option now points to the top level + man directory. The man files will be installed under + mandir/man8 and mandir/man1 as appropriate. + ========================================================== + +- Add complete text of GPL to LICENSE. +- Implement job report that indicates where Storage and Pool + came from -- with overrides and Pool storage and NextPool, + it is all very complicated. +- Create a few common subroutines for backup.c and migrate.c +- Eliminate warning messages from tray-monitor.c +25Jun06 +- Apply fix for scheduler for missing unlock_jobs(). +- Clean out autoconf caches before rebuilding configure +- Fix the FreeBSD pthreads lib define updated by Dan. +- Add missing semicolon in src/console/console.c +- Add Robert's enhanced version of build-win32-cross-tools + as well as his patch file. +- Note, the new gcc options are likely to break building of + wx-console or the tray-monitor ... +24Jun06 +- Implement Robert's suggestion to suppress printing compile lines. +- Detect GCC correctly (I hope) +- If using GCC (actually g++) add the following compiler flags + -fno-strict-aliasing -fno-exceptions -fno-rtti + + ===================== Warning ============================= + Turn on new bsnprintf() code. This could cause print output + to look different. + =========================================================== + +- Fix crypto when not using openssl. I previously overlooked this. +- Eliminate crypto type punning problems by eliminating void * and + using uint8_t * instead. +- Harden authentication failure in FD by single threading errors + and forcing a 6 second wait. + + ===================== Warning ============================= + Removed "Accept Any Volume" directive. + =========================================================== + +- Major cleanup and simplification of regress using shell functions + (more tests to be converted to new format) +- Add detection of 64 bit Irix as indicated by user. +- Increment catalog database id from 9 to 10. +- Add a few of the new database fields to the various C++ + structures. +- Implement code to fill in the most important new fields (e.g. + Media Enable). +- Ensure that most of the new fields are in create/get/insert/update. + More work to be done. +22Jun06 +- Update some very old licenses in src/cats. +- Modify the database format for handling Migration jobs: + Add PriorJobId, RealEndTime to Job table + Delete MAC table + Remove Stripe from JobMedia record (not used, wasting space) + Add ScratchPoolId, RecyclePoolId, Enabled to Media record + Add Cost to Location table. +- Delete mac_record subroutines. +- Add new table values to create/update/get routines as appropriate. +- Update the update_tables and make_tables scripts. +- Make a first cut in using a union where multiple pointers (actually + pointers to pointers) are stored. +- Make some changes to base64.c suggested by Robert and others and add + a small amount of documentation. +- Add some changes suggested by Peter for Solaris (bregex...) +- Make runscript.h always built because it needs to be pulled into + more places. In particular its RES was left out of a union. +- Renumber the enum{} list in runscript.h to avoid starting from zero. + This makes it slightly easier to detect uninitialized variables. +14Jun06 +- Remove xpg4 lib from FreeBSD build as it is no longer needed and + sometimes creates install problems. +- Change a couple of %T in strftime to %H:%M:%S as seen in Robert + Nelson's code. More to do. +- Convert a few store_bit to store_bool in filed_conf.c. +- DVD tweak to block.c as supplied by Uwe Muessel. +04Jun06 +- Modify configure.in to check for typeof(). +- In findlib/attribs.c use typeof instead of templates if possible. +01Jun06 +- Implement partial error messages for src/filed/acl.c +- Fix return code to fail when doing update barcodes and + Pool resource is not found. This previously caused Volumes + to be labeled as cleaning tapes. +- Small updates to projects. +27May06 +- Add Eric Bollengier patch for new RunScript directive. It breaks + compatibility between dird and fd. +26May06 +- Prevent DVD code from rewriting label if the device cannot be + opened read/write. +- Used __GNUC__ to detect GNU g++ as suggested by John Goerzen to + fix Debian build bug. +- Fix Dir/SD run race in migrate.c, verify.c, and restore.c +- Integrate manpages contributed by Jose Luis. +- Update projects file. +- Add manpages Makefile.in to configure.in +- Remove installation of bacula.8 in scripts directory. +24May06 +- Implement patch submitted by cesarb in bug #606 to implement O_NOATIME + support. + O_NOATIME is a open() flag which makes it possible to read a file without + updating the inode atime (and also without the inode ctime update which + happens if you try to set the atime back to its previous value). It also + prevents a race condition when two programs are reading the same file, but + only one does not want to change the atime. It's most useful for backup + programs and file integrity checkers (and bacula can fit on both + categories). + + Recent versions of the Linux kernel and glibc have support for it (the + glibc support being mostly copying the O_NOATIME definition to + bits/fcntl.h). If there's no support for it on the kernel, trying to use + it does nothing (since the kernel ignores unknown flags). + + If the kernel has support for it, trying to use it either works, fails + silently (mostly in remote filesystems), or returns errno=EPERM (if you + are not either the owner of the file or root). A simple way to prevent the + failure is to open the file without the flag and set it later with + fcntl(F_SETFL), ignoring any EPERM errors. +- Applied patch posted by Jaime Ventura to bug #570 to correct failure + of restarted jobs to complete (due to a destroyed pthreads conditional + variable used by the message thread). +- Fixed bug #619 where Bacula would not restart jobs with MaxRestartTimes + set to zero. +- Apply patch from John Goerzen bug #611 to fix bad manual links in the code. +- Apply patch from Rudolf Cejka bug #614 to removed trailing + colons in query.sql file. +- Apply patch from Rudolf Cejka bug #613 to correct prunning of files + not to create orphans. +- Apply patch from Rudolf Cejka bug #617 to use mtime instead of ctime + in restore long listing. +- Apply patch from Rudolf Cejka bug #609 to use MarkId in verify.c instead + of incorrect MarkedId. +- Apply patch from adioso bug #616 to correct text in manual (replace + Director with File daemon). +- Rework a few of the zlib changes so that they build properly. + +21May06 +- Move DIR "run" command to SD before starting the message thread + as suggested by Cristopher Hull to avoid a race deadlock from + two threads using the bsock structure. +- Modify LICENSE to correct some problems pointed out by Debian. +05May06 +- Correct EOF with no \n lex.c problem. +- Tweak compat.h compat.cpp and merge with apcupsd +- Add additional INFO messages if autochanger cannot be used. + +02May06 +- Simplify Win32 Makefile +- Correct count of buffers/bytes used by smartall.c +- Updated compat.h after porting apcupsd to MinGW. +01May06 +- Work on getting wx-console building on MinGW. wxWidgets now builds + started adding Makefile ... +- Moved MinGW library objects to src/win32/lib to reduce clutter. +30Apr06 +- Reloading a bad configuration file doesn't kill director any more. + Thanks to fix from Eric Bollengier. +29Apr06 +- Fix problem of accents with new Win32 code. +- Integrate Howard's VSS patch. Tweak it a bit. VSS now + works in the MinGW build with the exception that there + is a problem with accented characters -- i.e. there is + some mapping problem with wide characters. +- The code no longer compiles with Microsoft VC++. +28Apr06 +- Start implementing Christopher's St.Bernard code. +- Add Christopher's mods for opening files. +- Strip \r \n from Win32 error messages (Christopher) +- Add more info about Win32 system if unknown (Christopher) +- Use bstrn(cpy, cat) routines to avoid overrun in compat.cpp +- Fix a number of incorrect strings marked for translation, when + they should not be (e.g. commands). +- Fix StartTime bug reported for ClientRunBeforeJob and RunBeforeJob + Patches supplied by user in bugs #608 and #599. +- Use most recent of st_ctime and st_mtime in restore tree DIR + listing. This fixes some problems with Win32 printing incorrect + values. +- Correct the clock shift comm time calculation between the DIR + and the FD. It was added rather than subtracted. +- Strip all backslashes in filenames to be restored on Win32 + machines -- the names should all be in Unix format, and if + there are any backslashes it is most likely due to an improper + FileSet definition, and the files will not otherwise be + restorable. +- Remove lib/regex.c (replaced by bregex.c). +- Delete src/win32/License.txt +- Modify installer to install LICENSE +26Apr06 +- Fix bug in build-win32-cross-tools script reported by Howard +- Implement cross compiled bconsole +25Apr06 +- Fix barcode test, eliminate BOOL (doesn't exist on Linux). +- Write first cut of README.mingw32 +- Add back ua_label barcode fix from Rufolf Cejka. +- Integrate the majority of the Mingw cross-tools submission + made by Howard Thomson. Everything compiles, with zlib, openssl, + and VSS turned off. Linking needs a pthreads library ... +23Apr06 +- Add 'Dir Status' button to the gnome console. +- More work on migration. +- Restore non-compatible base64 coding to permit compatibility. +- Display heap stats in Storage daemon without debug level. +22Apr06 +- Integrate most of the MinGW changes -- more to do. +21Apr06 +- Implement using pg_config for finding PostgreSQL files. + Fixes bug #600. Patch supplied by user. +- Remove -t option from mktemp in mtx_changer.in and use + working directory. Fixes bug #578. +- Update job start time after the any run before job so that + files created by the script are only backed up once. Fixes + bug #599. +- Strip trailing newline only from filenames entered in + the restore command when reading a file. This permits + the user to enter filenames with trailing spaces. Fixes + bug #549. The user supplied a patch that I modified slightly. +- Use the most recent time (st_mtime, st_ctime) in the dir + command in restore. This gives the user a better idea of what + the newest file really is. This fixes bug #574. The fix + was suggested by the user. +- Implement a compatible version of base64. This permits external + programs to duplicate Bacula's base64 algorithm using standard + routines. This fixes bugs #296, and 565. Patch submitted by + author of bug #565. + ================= Note ======================== + Previous Signatures stored in the database are no longer + compatible with this. The main downside is for Verify jobs, + and doing an InitCatalog run will fix the problem. Also, the + authentication between the deamons is changed, so all daemons + must be simultaneously upgraded. + ============================================== + If you don't like this fix, set: + const bool compatible = true; + to + const bool compatible = false; + in src/lib/base64.c +20Apr06 +- Ensure that DB signature is never NULL. +- Ensure that DB table names are not translated. +- Fix scheduler to handle time skew (eg daylight savings). +- Fix scheduler to use lock_jobs() to avoid most problems + with reload. Window is now milliseconds. +19Apr06 +- Apply patch from Christopher Hull + - Allow multiple connections to database with different + parameters. + - Invalidate the scheduler when doing a reload. Fixes seg + fault, but still 60 second window. + - Additional info in Reschedule message. + - Use set_jcr_job_status() everywhere to prevent loss of + cancel, error. + - Display peer IP in FD if error from connecting DIR. + - Don't increment file count for DIRBEGIN. + - Replace illegal characters in Win32 filename by _. + - Add SE_CREATE_PERMANENT_NAME privilege in Win32. + - Hash hard link filenames rather than linked list. + - Fix for security failure in chdir on Win32. + - Add CreateDirectoryA/W win32 API entry points. +- Add /silent option to Win32 FD for Install/Remove service. +- Always print Heap statistics in FD. +18Apr06 +- Remove the -f option from the chown in Makefile.in for more + portability. +- Change setting the group in Makefile.in to use chgrp for + more portability. +- Implement a write_store and read_store to replace + dirstore in reserve.c +- Implement a Bacula read/write lock for Python rather + than using the Python lock to avoid recursive problems. +- Correct the uninstall directory names in filed/Makefile.in + as reported by a user. +17Apr06 +- Correct some problems with database creation (new tables). +- Replace a bunch of old 0x%x by %p. +- Get first cut of Migration with Job selection working. +16Apr06 +- Change store_bit() to store_bool() for the Spooling in + dird_conf.c -- bug reported by Robert Nelson. +15Apr06 +- Correct Makefile bug found by Dan Langille. +14Apr06 +- Correct Makefile for Solaris /bin/sh +- Correct mtx-changer.in for Solaris /bin/sh +- Abort if a conf resource does not have a Name = +12Apr06 +- Change the name of the regex program to bregex. +- Add the bwild program to the tools directory. It is similar + to the bregex program. +- Implement create bregex.h and bregex.c in src/lib from the + Python regexp program. +- Use the new bregex.c to implement Regex expressions on Win32. +11Apr06 +- More work on migration. +- Implement wild program in tools directory for testing + wild-cards. Almost identical to the regex program. +- Up port VSS single thread locking code. +- Replace N_(..) by NT_(...) to inhibit translation of + commands. +- Modify Makefile to change the permissions on Working Directory + to 770 if the directory is created. +- Do not fail the Makefile if changing the permissions or + owner/group on WorkingDir fails. +- Remove early selection of Scratch Volumes in the recycling + algorithm. +- Correct the old recycling algorithm so that Scratch Volumes + are selected when looking for a Volume in the changer. +- Correct a typo in the Verify SQL reported by Joe Park. +10Apr06 +- Remove automatic case folding on Windows FDs. You must + explictly use the 'Ignore Case = yes' option. +- Remove the code added to 1.38.6 and 1.38.7 that pulls a + scratch volume in an Autochanger early in the 'recycling' + algorithm. +09Apr06 +- Make weof() and clrerror() methods of class DEVICE. +08Apr06 +- Tweak license to include Microsoft restrictions. +- Move mysql.reconnect to after real_connect(). Thanks to + Frank Sweetser for the patch. +- Disallow a backslash in a File = directive (Windows junk) + unless the string is quoted. +- Apply Eric's patch to ua_label.c so that daemon protocol + is not translated. +- Add NT_ definition for strings that should not be translated. +- Apply NT_() to ua_label.c +- Remove timed wait for VSS on Win2K3 as it is not yet + implemented. +- Correct bacula.in script to reference bacula-ctl-xx in the + sysconfig directory rather than the bin directory. +26Mar06 +- Fix a long standing bug in the bacula start/stop scripts. +- Attempt to add the new bacula-ctl-* files to the rpm. +- Switch to using typeof() for list traversing to avoid + as many FC5 g++ compiler warnings as possible. +25Mar06 +- Split the bacula start/start script into four files: + bacula -- starts and stops calling other scripts + bacula-ctl-dir -- starts/stops the director + bacula-ctl-fd -- starts/stops the File daemon + bacula-ctl-sd -- starts/stops the Storage daemon +24Mar06 +- Create datestyle fix for PostgreSQL. Fixes bug #574. +- Correct editing of JobId from int to int64 in fd_cmds.c +- Eliminate FileSet name race with bash_spaces() and multiple + threads by bashing in a local. +- Fix error return from 'use storage' to print a correct error + message rather than nothing. +- Correct false re-read last block error message when two jobs + are simultaneously writing at the end of a tape. +- Simplify exit conditions in the reserve.c code to avoid + possible non-release of reservation_lock(). +- Suffle lock order in reserve to avoid deadlock between + reservation lock and device mutex. +21Mar06 +- Initialize jcr mutex before first use. Thanks to Thorsten for + tracking this down for me !!!! as it broke the Win32 build. +20Mar06 +- Integrate addition of line count limitation to bsmtp -l from + Sebastian Stark +17Mar06 +- Implement regex test program in tools directory. +- Attempt to fix time problem with bsmtp with foreign langs. +- Add strip_trailing_newline() submitted by user. +- Implement regex matching in migrate.c +16Mar06 +- Fix bug #537 to allow arbitrary time to mount a volume for + restore, if polling is turned on. +- If dir_user or dir-group is specified in ./configure apply it to + the working-dir. Fixes bug #533. +- If rescheduling a job cancel the previous incarnation with the SD. + Fixes bugs #566 and 557. +- Fix bug #567 do_message() definition type conflict. + +14Mar06 +- Add more jcr methods and make mutex and use_count private. +- Create lock/unlock methods for jcr. +- Fix PostgreSQL bug doing sql_data_seeek() by explicitly reading + records to get to seek position. +- Integrate patch from bug #561 to correct conio.c signal definitions. +- Fix Rescheduling failed Jobs. Ensure that SD message thread + terminates correctly by doing pthread_kill(). Do not destroy + SD cond wait variable between executions of the job. Use local + mutex for cond variable to avoid blocking jcr chain. Fix poor + use of jcr use count in jobq.c for restarted jobs. +- Fix obsolete usage of foreach_dlist() to use foreach_jcr() in + lib/jcr.c -- prevents locking the jcr chaing. +- Apply patch from bug #564, which corrects listing volumes with + multiple autochangers. Apply same fix to next volume list. +- Fix bug #562 where restore bootstrap file is not unique. +- More details in implementing David's migration syntax proposal. +- Save and restore dcr when swapping drives so that if we have + a write dcr it is not lost. +- Use new routine lock_reservations() to lock the reservations + system, and call it while looking for a volume in askdir.c. + This could possibly fix bug #543. +- Stop SD command loop if job is canceled. + +08Mar06 +- Remove old code from findlib/create_file.c +- Rename mac.c migrate.c +- Add user friendly display of VolBytes in job report. +- Rename target... to previous... to make it a bit easier to + understand. +- Add selection type and selection pattern to Migration (idea + given by David Boyes). + +04Mar06 +- The po files should now be current. +- Fix new sql_use_result() code to properly release the + buffers in all cases. +- Use the keyword ujobid to mean the unique job id; job or jobname + to mean the Job name given on the Name directive, and jobid to + be the numeric (non-unique) job id. +- Allow listing by any of the above. +- Add the user friendly job report code for reporting job elapsed time + and rates with suffexes from John Kodis . +- Add Priority and JobLevel as Python settable items. +- Use TEMPORARY table creation where the table is created by + Bacula. +- Add new code submitted by Eric for waiting on specific jobid. +- Add ACL checking for the dot commands. +- Fix restore of writable FIFOs. +- Fix a bug in bpipe where the string was freed too early. +27Feb06 +- Modify the Python class examples to inherit object -- new way + of defining classes. Patch from Felix Schwarz. +- Implement jobuid to replace old usage of job in keywords as + suggested by Eric Bollengier. +- Apply patch for enhancing wait from Eric Bollengier. On can now: + wait (wait for all jobs to stop) + wait jobid=nn + wait jobuid=unique id + wait job=job-name +- Implement write variables for Python to set Priority (anytime), and + Job Level, only during JobInit event. +26Feb06 +- Fix the block listing bug pointed out by Arno. +- Update the po files at Eric's request. +24Feb06 +- Fix Maximum Changer Wait, Maximum Open Wait, Maximum Rewind Wait to + accept time qualifiers. +- Make catalog respect ACL. +- Add recycle count to Media record. + +Changes to 1.39.6-beta1 24Feb04 +23Feb06 +- Add Rudolf Cejka's new rc-chio-changer. +- Implement pulling Volume from Scratch Pool if the + Volume is in the autochanger. +- Implement additional command arguments for update Volume. + +Changes to 1.39.5 +22Feb06 +- Back port changes to 1.38.5 +- Fix recycle SQL for StorageId. +- Fix misplaced quote in mtx-changer script. +20Feb06 +- Note. Your database must be updated, or you must create + a new database. I have not yet incremented the database level. +- Add Location table. +- Add LocationId, DeviceId, and MediaTypeId to Media record. +18Feb06 +- Implement create/get mac record in database for adding extended + Migration data to the job record. +- Add new MAC table to update/make database scripts. +- Return Storage name used when getting VolumeNames for a job. +- Change bsr file keyword Storage to Device, which is more accurate. +- Ensure that Mac records are pruned/purged. +- Tweak SD tools to deal with changing media type. +- Integrate more dev.c subroutines as methods (e.g. strerror, bsr, ...) +- Pass pointer to dcr pointer to acquire_device_for_read() so + that the subroutine can switch devices, and hence dcrs. +- Modify the multiple MediaType read code to re-use the same + dcr when switching devices. This makes the code much more + robust. +- Integrate patch from Karl Hakimian that reads JobIds, FileIndexes + from a table for restore. +- Add Storage name to VolParams, but it really should be Device. +14Feb06 +- Add disk-changer to scripts directory + configure/Makefile +- Eliminate PoolId from jcr -- it is in jcr->jr.PoolId +- Implement store_bit scanner to replace store_yesno. Mostly done. +- Implement new store_bool that stores in a bool. +- Add true/false to yes/no conf directives. +- Make first cut at changing appropriate store_yesno to store_bool. +- Complete implementation of Pool storage devices. +- Move starting clones to job.c +- Move create_restore_bootstrap_file() to job.c +- Make copy_storage() more general to be able to handle + Pool storage. +- Cleanup a lot of migration code for manual running, including + using Pool storage. +- Move getting a scratch Volume into a subroutine. +- Make all places a Volume that is added to a pool to + respect max vols. +- Fix bug in autochanger recycle code (improper edit 64 bit). +- Fix segfault in restore command when no value specified. +- Start adding code to handle multiple MediaTypes in restore. +- Eliminate race condition in getting Volume name for + two drive autochanger. +- More debug code in autochanger. +- Add storage keyword to bootstrap file, add parsing. +- Move slot in bsr file into Volume record as there will be + a different slot for each Volume. +- Create reserve.h +07Feb06 +- Implement Pool storage overrides. +06Feb06 +- Implement first cut of Migration. +- Implement mysql_use_result() from patch by Karl Hakimian. + This reduces significantly the memory consumption during + the restore tree building, and hence runs faster too. +- Implement StorageId patch supplied by user (reggie) in bug + #536. This should permit Bacula to work correctly with two + autochangers. +- Implement Job listing variations suggested by a user. +- Move updating bootstrap code in backup.c to subroutine + update_bootstrap_file(). +- Add new job status elapsed time and bytes written user + friendly job report output patch sent by John Kodis + . +- Implement a storage list in Pools. +- Separate out setup_job() code from run_job(). +- Get migration working -- lots of changes in mac.c in both + DIR and SD. +- Apply patch from user (Eric Bollengier I think) that fixes a + DIR crash when no arguments are supplied to a dot command. +- Fix typo (strcpy->strcmp) in ua_prune.c as reported by Martin. +- Fix command arg name->volume in label command of gnome-console. +- Fix SD acquire.c to release correct DCR by explicitly testing + on the dcr address rather than trying to devine if it is a read + or write dcr. This failed in error conditions when the device was + not fully setup. + +30Jan06 +- Apply user supplied patch for more readable rate output + in job report. +- Continue implementing migration. +- Implement support for removable filesystems in SD. +- Ensure that btraceback scripts can be read by anyone. +- Replace dvd-freespace and dvd-writepart by dvd-handler. +- Correct bug where canceling restore before the FD contacts + the SD causes the drive to be left in read mode. +- Move ofline_or_rewind into DEVICE::close(). +- Eliminate close_device. +- Convert several dev subroutines to methods (e.g. bsf, + eod, ...) +- Eliminate force_close_device(). +- Implement Device Type directive in Device resource that + can have values File, Tape, Fifo, DVD, or Prog. +- Add has_cap() method to Device. +Changes to 1.39.4 +17Jan06 +- Add patch from bug #527 to allow RedHat user to specify + options/user/group for starting each daemon in + /etc/sysconf/bacula. +16Jan06 +- Add two new queries to query.sql provided by Arno. One + list volumes known to the Storage device, and the other + lists volumes possibly needing replacement (error, ...). +15Jan06 +- Add periodic (every 24 hours) garbage collection of memory + pool by releasing free buffers. +14Jan06 +- Correct bug counting sized (for display only) in smartall.c +- Print FD mempool stats if debug > 0 rather than 5. +12Jan06 +- Make db_lock() mutex error fail the job rather than abort + Bacula. Canceling the job caused the mutex to fail. +- Correct bug in alist.c that re-allocated the list if the + number of items goes to zero. +- Move the reservation system thread locking to the top level + so that one job at a time tries all possible drives before + waiting. +- Implement a reservation 'fail' message queue that is built + and destroyed on each pass through the reservation system. + These messages are displayed in a 'Jobs waiting to reserve + a drive' list during a 'status storage='. Note, multiple + messages will generally print for each JobId because they + represent the different problems with either the same drive + or different drives. If this output proves too confusing + of voluminous, I will display it only when debug level 1 + or greater is enabled in the SD. +11Jan06 +- Add enable/disable job=. This command prevents + the specified job from being scheduled. Even when disabled, + the job can be manually started from the console. +- During 'update slots' clear all InChanger flags where the + StorageId is zero (old Media records). + +Beta release 1.38.4: +09Jan06 +- Fix autochanger code to strip leading spaces from returned + slots number. Remove bc from chio-changer. +- Back port a bit of 1.39 crypto code to reduce diffs. +- Fix first call to autochanger that missed close()ing the + drive. Put close() just before each run_program(). Fixes + Arno's changer bug. +07Jan06 +- Add PoolId to Job record when updating it at job start time. +06Jan06 +- Pull in more code from 1.39 so that there are fewer file + differences (the new ua_dotcmds.c, base64.h, crypto.h + hmac.c jcr.c (dird and lib) lib.h md5.h parse_conf.c + util.c. Aside from ua_dotcmds.c these are mostly crypto + upgrades. +- Implement new method of walking the jcr chain. The + incr/dec of the use_count is done within the walking + routines. This should prevent a jcr from being freed + from under the walk routines. + + +Changes to 1.39.3: +04Jan06 +- Start implementing Verify list output. +- Move the suitable_drive flag to a better place to prevent + premature termination of the reservation if all drives + are busy -- should fix Arno's diff/inc pool failures. +26Dec05 +- Add mutex to single thread VSS code in Win32. +22Dec05 +- 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. +21Dec05 +- 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. +- Delete old bnet packet code. +- Ignore new BNET_START_SELECT and BNET_END_SELECT signals in + wx-console. -- not implemented because bconsole must be updated. +- Modify restore command in wx-console to set gui on and to use + only .messages instead of messages. Hopefully this fixes bug + #514. +- Fix seg fault in exit of acquire when canceling a job -- + reported by Wolfgang Denk +- Pull in latest reservation system changes from 1.38 +- Make .messages command always print messages regardless + of the automessages flag. +17Dec05 +- Fix seg fault if user labels a drive directory bug #513 +- Remove quotes around Version as it breaks things. +16Dec05 +- 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. +14Dec05 +- Correct reservation system to do a last ditch try + for any mounted volume, then anyone anywhere. +- Add quotes around table Version because of + error in MySQL 4.1.15 -- bug report submitted. +- Correct some minor problems with btape in the fill + command. +- 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. +13Dec05 +- 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. + +Changes to 1.39.2: +13Dec05 +- Add stubs for non-crypto build. +12Dec05 +- Use localhost if no network configured +11Dec05 +- Eliminated duplicate MaxVolBytes in cat update -- bug 509. +- Remove debug print. +- Add bail_out in error during state file reading. +10Dec05 +- Merge changes made to 1.38.3 into HEAD +- Add stubs for pygtk-console code +- Create Makefile.in for pygtk-console code +09Dec05 +- Merge updates into 1.38 branch +- Update specs to include mysql4 define. +- Fix when attributes are sent, must be after binit(). +- Stop read_record() if status not ok in second loop. +- 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. +08Dec05 +- Fix Win32 built to work with new crypto code. +- 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. +07Dec05 +- 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. +- Modify most restore error messages to be queued so that they + appear at the end of the job rather than mixted with the restore + listing where they could be "lost". +06Dec05 +- 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. +- Add sanity check in append.c to ensure that dcr is not NULL. + This can happen if multiple drive autochanger SCSI control + channel and drive indicies do not correspond. +05Dec05 +- 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. +- Add back index code so that two drive autochangers can get + a second tape. +- Change a bunch of debug levels to aid debugging autochangers. +- Fix reservation so that mutexes are properly applied. +- Rework reservation algorithm so that two drives can be used + at the same time. +04Dec05 +- Landon merged his data encription changes into the HEAD +- 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. +Changes to 1.39.1: +03Dec05 +- 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. +29Nov05 +- Add Migrate, Copy, Archive Job types (some where there) +- Correct some more editing of JobId's (for 64 bit compatibility). +- Ensure that StorageId is stored in Media record when ever possible. +- Add Migration Job to Job. +- Add Migration Time, Migration High Bytes, Migration Low Bytes + Next Pool to Pool resource. +- Add more code to mac.c (migration archive copy). +- Change Start Storage daemon job to require read and write storage + pointers. +- Pass read storage data to SD as well as write storage data. +- 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. +- Add read output to Status in SD. +Changes to 1.39.0: +23Nov05 +- Add red-black btree routines +21Nov05 +- Remove abs() in bfile.c so that it compiles on Solaris. + Bug #491. +20Nov05 +- 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. +14Nov05 +- Apply SunOS patch for ACLs submitted by David Duchscher. +- Make sure to set storage before trying to set drive. +- Add bacula_mail_summary.sh to examples directory. It makes + a single email summary of any number of jobs. Submitted + by Adrew J. Millar. +- Make sure when we do a mount to unblock the device even + if the drive could not be opened. +13Nov05 +- Remove the USE_WIN32STREAMEXTRACTION #defines (always on) + and correct a few minor problems to make it build on Linux. +10Nov05 +- Remove delete of CVS from all Makefiles +- Fix seg fault when clicking on Add button in wx-console + restore panel. Bug #470. +- Fix copyright date and URL typo -- bug #468. +- Change autostart install for FreeBSD to look for rc.conf + rather than rc.local as suggested fix for bug #466. +- Apply patch supplied by Eric Bollengier to fix PostgreSQL + grant on status. Bug #465 +- Apply patch supplied by Eric Bollengier to fix PostgreSQL + update script. Bug #464 +- Tweak #ifdefing a bit in new Win32 stream code. +- Fix #ifdeffing for FD_NO_SEND_TEST. +- Add documentation of performance #defines