1 Technical notes on version 2.2
5 kes Fix listing performance problems in bat. Pointed out by
7 ebl Fix replace on restore. This fixes bug #969
8 kes Fix bat code that tests for Win32. This should fix bug #968
9 kes Query 5 list wrong Vol after migration. This fixes bug #960
11 kes Correct lib/Makefile.in to include enh_fnmatch.o that was removed
12 in back porting from 2.3.x
14 kes Backport almost 4000 lines of 2.3 code that fixes a number of bugs.
15 The details are included in the notes in this file.
17 kes Backport 2.3 code that fixes: it fixes incorrect or incomplete error
18 messages; it fixes a problem opening the SQLite3 database when multiple
19 simultaneous jobs were running; it fixes a bug with certain versions of
20 MySQL where batch inserts failed because of table name character case
21 (upper/lower) differences.
22 kes Fix race condition that drops final block written to volume.
23 This happens in rare cases with multiple simultaneous jobs
24 when the Volume fills. This fixes bug #964. May be related
25 to bug #935 and possibly #903.
27 kes Fix FD->SD authorization failure, which was due to spurious
28 wakeups from a pthread_cond_timedwait(). Simply check the
29 predicate before continuing. This fixes bug #953
30 dvl Add new configuration item --archivedir
31 dvl Adjust regression tests to use tmp not /tmp. This will allow
32 multiple concurrent runs of the regression tests.
34 kes Fix race condition that drops final block written to volume.
35 This happens in rare cases with multiple simultaneous jobs
36 when the Volume fills. This fixes bug #964. May be related
37 to bug #935 and possibly #903.
38 kes Eliminate more strerror() and replace with bstrerror().
39 kes Remove BSD getopt and replace with unrestricted IBM version.
40 kes Fix Win32 build for changed calling sequences.
42 kes Fix FD->SD authorization failure, which was due to spurious
43 wakeups from a pthread_cond_timedwait(). Simply check the
44 predicate before continuing. This fixes bug #953.
45 kes Add const char where needed (more to do).
47 kes Setup SQLite busy handler before doing queries. Fixes bug #967.
48 kes Don't overwrite error message in check_tables_version.
50 kes Unlock batch insert tables with same calls used elsewhere.
51 kes Allow starting 59 jobs a second.
52 kes Make SD session key more random.
53 kes Add retry for SQLite opening db if it fails. Probably helps
55 kes Suppress extra error messages during batch insert failure.
57 kes Put some FD auth code on dbglvl rather than fixed.
58 kes Return insert attributes error message in db msg buffer to avoid
59 false error messages. Helps fix bug #966.
60 kes Separate batch init error messages. Probably helps fix bug #966.
61 kes If Dir gets an error during inserting attributes, cancel SD.
62 This reduces unnecessary error messages.
64 ebl Cleanup batch insert code. Probably fixes bug #965.
66 kes Turn off some code when batch insert not enabled.
67 kes Edit FD name in connect error messages.
69 kes Add code to handle tray monitor separated from Win32 FD.
70 kes Fix display of Win32 tray monitor after reboot. Fixes bug #952.
72 kes Fix ANSI tape labeling. This fixes bug #954.
73 kes Increase the max block size to 4MB fixes bug #957.
74 kes Apply 2.2.4-poll-mount fix, that resolves bug #908 where a tape
75 is not properly mounted (recognized) during a poll.
76 kes Apply 2.2.4-verify patch that resolves bug #958. A Verify catalog
77 Job that has differences reports Verify OK.
78 ebl Fixes #955 bug seg fault in Dir introduced with regexwhere relocation.
82 kes Increase size of name string when FD making connection to SD.
85 kes Add waits to multiple exit detection code to try to force pid
86 file to always be deleted.
87 kes Restore good dev.tar.gz to rescue set appropriate binary property.
89 kes Fix seg fault in error exit of acquire_for_read after unsuccessfully
90 trying to switch drives by checking for blocking before unblocking.
92 kes Cancel storage daemon in all cases where FD reports error. This
93 should fix virtually all cases of bug #920.
95 kes Fix error message that was clobbered when Dir tells SD it does not
96 have write permission on Volume. This should fix a minor point
97 in bug #942, but not the main problem.
98 kes Add code to cancel job in SD if FD connection fails. This should
100 kes Add code in FD exit to prevent loops and a crash on FreeBSD.
101 kes Fix migration code to get correct Volume name with multiple volumes
102 by skipping |. Fixes bug #936.
103 kes Implement patch supplied by Landon to fix bug #944 where using
104 TLS with bconsole uses 99+% of the CPU.
105 kes Note, you need GTK >= 2.10 to be able to link the Tray Monitor
107 kes Move patches into patches directory.
109 ebl Fix bug #946 about "bacula-dir -t" which doesn't works
112 ebl Using "m" in bconsole will show messages like before,
113 and not memory usage.
115 Release Version 2.2.3
116 kes Note, you need GTK >= 2.10 to be able to link the Tray Monitor
119 kes Fix bug #935, and probably also bug #903 where files were not
120 restored. MediaId was not properly set in JobMedia record after
123 kes Add ./configure search in qwt-qt4 for qwt package
124 kes Apply Martin Simmons patch that should turn off the new API usage
125 when batch insert is turned off allowing building on older
128 Release Version 2.2.2
130 ebl Detect if new PosgreSQL batch insert API is present.
131 kes Correct incorrect mempool call causing Director crash.
132 sb Update spec files for 2.2.1 release
134 Release Version 2.2.1
136 kes Update POTFILES.in
137 kes Cleanup a few underquoted AC_DEFUNs in configure
138 kes Apply patch from Martin Simmons that adds a test for va_copy to
141 kes Fix bug #921 by increasing the number of tries to create a new volume
143 kes Rework bmsg in ua_output to use va_copy() so that bvsnprintf()
144 can be called multiple times. Implement a version for machines
145 without va_copy() that gets a big buffer.
147 kes Integrate more portable zone offset code into bsmtp.c
148 Submitted by Attila Fülöp.
150 kes Fix bad SD->FD return status reported by
151 (James Harper) <james.harper@bendigoit.com.au>
152 ebl Fix a bug in read_close_session which return random status
153 thanks to James Harper
155 kes Fix (hopefully) bug #930 by doing a db_escape_string() on file
156 and directory names during restore of single file/directories.
157 kes Add sanity checks to .sql command when string is empty. Hopefully
158 that will resolve Dirks Director crash.
160 kes Apply patch submitted by Martin Simmons that corrects a seg fault
161 in the bsmtp chat subroutine when debug is >= 10.
163 kes Fix Director crash when running bat SQL queries.
164 kes Add David's notes on Item 8: Copy pools.
166 kes Rework projects file to be current and ready for a vote.
167 kes Enhance lex scanner error message.
169 kes Tweak LICENSE file to mention BSD code.
170 kes Fix bat.pro.in so that it includes the OpenSSL libraries only
171 if specified on the ./configure.
172 kes Add first (not yet tested) cut of bcomm to the qt-console directory.
173 This class is intended to allow us to open a second bsock to the
174 Director while in the restore subdialog.
176 kes Fix configure to create bat Makefile before creating dependencies.
177 kes Eliminate the egg files from the tray-monitor. Use gtk calls.
178 kes Add a tooltip to the tray monitor.
179 dvl Set the Director's PID file before dropping privs. This fixes
182 kes Update AUTHORs file
183 kes Increase the default max concurrent jobs to 20 in FD and SD to
184 correspond with the default .conf files.
185 kes Rewrite the Win32 service routines. This eliminates the 3 copies
186 some different, of the same file created by RN when porting the
188 kes Rearrange some of the Win32 directories and the placement of the files
190 kes Set DEVELOPER flag in version.h
192 ========================================================================
193 Release Version 2.2.0
195 kes Apply a second doc patch from Marc.
196 kes Apply a doc patch from Marc Schiffbauer <marc@schiffbauer.net> that
197 improves the tips section that discusses how to setup multiple
200 kes Update bat README file.
201 kes Apply patch from Allan Black <Allan.Black@btconnect.com> that
202 corrects a typo in the Recycle status check in db_find_next_volume().
203 This will probably fix a number of annoying problems with multiple
205 kes Modify most of dird/msgchan.c to use bsock class calls rather than
206 bnet calls -- no functionality change.
208 kes Modify the Verify output to specify if files are missing on
209 the Volume(s) or disk. Fixes confusion in bug #916.
210 kes When more than one Volume is read in a migration job, the last
211 Volume bytes reported are from the last read volume rather than
212 the last written volume. Fixed. This fixes bug #910.
213 kes Fix display of Recycle flag after update volume=foo recycle=yes.
214 It previously printed New Recyle flag is: no. This fixes bug
217 kes Correct seg fault when switching tape drives during restore.
218 kes Commit uid_gid_name.c (replacement for idcache.c), but will not
219 be used until after 2.2.0 release.
221 kes Remove fnmatch() in SD that permitted wild card specifications.
224 kes Fix %g in filename returned by SQL for browse tree reported by
226 kes Fix configure so that it puts config.out in the cwd rather than
228 kes Attempt to fix the locking problem reported by Eric in bug #906.
229 kes Make berrno class to leave errno unchanged after constructor call.
230 kes Make bnet_server use the heap rather than the stack to allocate
231 its socket fd pointers to avoid a crash at termination. Problem
232 reported by Ryan Novosielski and bugs pointed out by Martin Simmons.
234 kes Create new depkgs and depkgs-qt separating the qwt out of depkgs
235 and putting it in depkgs-qt along with Qt4.3.
237 kes Rework code in acquire.c that switches drives for reading when
238 the Media Type does not match. This should fix bug #906
240 ebl Fix a director segfault during job setup #907
241 kes Correct seg fault in postgresql when first operation returns no
242 rows. Fixes Dirks File browser problem seg fault with bat.
244 kes Apply patch from Felix Schwarz <Felix.Schwarz@web.de> that allows
245 building wxconsole on Fedora 7 with wxWidgets 2.8 (it works with
248 kes Implement PopUp YES/NO dialog for bat.
250 ebl Fix a compilation bug when using #define BACL_WANT_NUMERIC_IDS
252 kes Correct RunScript to terminate job in FD on failure.
253 kes Change abort_on_error and AbortJobOnError to fail_on_error
254 and FailJobOnError in RunScripts.
255 kes Minor tweaks of code formating in RunScripts, principally to
256 avoid depassing 80 columns.
258 kes Eliminate one #ifdef Win32 in bsmtp
259 kes Implement grow tool to grow a file for testing very large databases.
260 kes Add big-vol-test to test Bacula seeking with > 5GB.
263 kes Modify find_next_volume() to return all values in Media record.
264 kes Ensure that we keep Recycle Pool when moving Scratch volumes.
268 kes Update Release notes
270 ebl fix a bug in get_scratch_volume() report by Andreas Helmcke
271 Warning, in previous beta version, all media get from scratch keep their
274 kes Tweaked Win32 installer to remove temp conf files at uninstall time.
275 This should fix bug #842. Made a note to look at removing the temp
276 files at the end of the install.
277 kes Add ability to mount and unmount a file device providing it is
278 marked as being removable and has the appropriate mount and unmount
279 commands defined in the Device resource. This fixes bug #830.
280 kes When applying a storage override, release all previous storage
281 definitions rather than just prepending the new storage.
282 This should prevent a good deal of confusion.
284 kes Implement ./configure search for qwt libraries.
286 kes Disable posting the WM_CLOSE message in KillRunningCopy of the
287 Win32 FD. This should fix bug #893.
288 kes Remove an unnecessary beep in Win32 init code.
289 kes Update copyright dates in Win32 executable about boxes.
290 kes Replace the FSF copyrighted getopt.c and getopt.h in the Win32
291 code with a BSD getopt.c and getopt.h.
292 kes Remove sched.h from the Win32 compat directory -- not used.
293 kes Remove the Exit menu item from the Win32 tray monitor. If you really
294 need to shut it down, do it through the services panel or the command
296 kes Remove some inappropriate Bacula FSFE copyrights.
297 ebl Tweak status client=xxx to be more easy to parse (more like in 2.0.x)
298 kes Fix regress config non-portable test as pointed out by
299 Florian Heigl <florian.heigl@gmail.com>
300 kes Fix PSCMD for HP-UX in configure.in to have proper syntax.
301 as pointed out by Florian Heigl <florian.heigl@gmail.com>
303 kes Fix missing rctx. prefixes on the Darwin code in src/filed/restore.c
304 Reported by Frank Sweetser.
308 kes Fix client-only build.
309 kes Integrate client-only fixes for bsys (initgroups) and conio from
310 Sergey Svishchev <svs@ropnet.ru> for the AIX platform.
311 kes Make arguments to get_scratch_volume() in same order as other
313 kes Rework the prune_volumes() subroutine so that after purging and
314 no volume found in desired pool, it will check for a scratch
315 volume. This prevents recycling the whole scratch pool.
316 kes Add code to status storage to print boffset_t (largefile support).
318 kes Move qwt (Graphics libarary for Qt4) to depkgs.
319 kes You now need a --with-qwt=<dir> to be able to build bat.
320 kes Update src/win32/cats/bacula_cats.def to include the new
321 db_get_query_dbids() call on Win32.
323 kes Correct a problem when selecting a scratch volume and moving
324 it to another pool that lost some columns.
325 kes Tweak some code in ua_update.c to use POOL_MEM instead of POOLMEM.
326 kes Enhance Autochanger error messages to include Volume and device name.
327 kes Rework prune_volumes() code to take account of InChanger flag,
328 and to handle recycling volumes going to the Scratch pool and
329 current pool because the RecyclePool directive.
330 kes Implement a better and more efficient db_get_query_dbids() to
331 handle creating and passing back a list of DBIds.
335 kes Start work on new more efficient DBId subroutine. First use
336 will be for recycling volume to Scratch inchanger.
337 kes Increase number of JobIds in pruning from 1000 to 10000.
338 This to be replaced by above routine.
339 kes Begin implementation of building Qt4 on Win32.
340 kes Correct typo in fix I added for bad TLS shutdown.
341 kes Pull 2.0.3 patches into patches directory.
342 kes Update Release notes. Include qt-console in line count.
343 kes Update Projects file.
345 kes Integrate patch from Sergey Svishchev <svs@ropnet.ru> that fixes
346 bug in migration code where a job that spanned two volumes
349 kes Implement new BST_DESPOOLING blocked state. Change from locking
350 during despooling in SD to blocking. This means that other threads
351 can work with the device structure, in particular the reservations
352 system while despooling.
354 kes Fix return in reservation message queue that missed clearing
355 the jcr lock (implemented 26Jun07 below).
356 kes Rename a number of dev methods to make locking function names
358 kes Document locking in lock.c. Move lock structures to new file
361 kes Move reservations message lock to lock jcr only this
363 kes Move main SD locking code into lock.c (new file).
364 kes Update Win32 build to include lock.c
368 kes Dirk committed the qwt library code for drawing graphs in bat.
369 kes Tweak install of qwt so that it is integrated with ./configure.
371 kes Fix HAVE_BATCH_INSERT to be HAVE_BATCH_FILE_INSERT, pointed
372 out by Eric (my typo).
373 ebl Fix configure.in to get batch mode enable
374 kes Return correct string from authenticate.cpp in bat when connecting
376 kes Apply patch suggested by Frank Sweetser to fix bug #888 --
377 spurious line drops when using TLS.
378 kes Do not file reparse points when restoring a file that already
381 kes Implement Windows reparse points -- similar to directories, but
382 we do not descend into it. This is a first cut. They seem to
383 be backed up, but restore is not yet tested.
384 kes Remove restore_blocking in tls code when shutting a socket to leave
385 it in blocking mode. Hopefully this will fix the encryption bug
386 reported by Frank Sweetser.
387 kes When opening a file for backup, tell the OS that we are going to
388 read it sequentially -- optimization.
389 kes Change variable names in authenticate_director() to not conflict
390 with member names in bat. Caused great confusion with compiler,
393 kes Queue openssl error messages in case of comm problem.
394 kes Do shutdown() call if socket terminated.
395 kes Remove some duplicated code in tls.c
396 kes Move more of the bsock member variables into private and access
398 kes Add Frank Sweetser's tls-test to the regression suite.
400 kes Add Swedish sv.po file
402 kes Don't print clock skew message in FD if less than 3 seconds diff.
403 kes Add a bit of VSS info to status client.
404 kes Implement a first cut of Vista VSS, using Win2003 code.
408 kes Fixed bug #886 (multidrive autochanger: SD doesn't use drive with
409 loaded tape but uses first drive).
410 kes Fixed bug #807 Restore encrypted backup failed on Windows 2003
411 This was indeed a Win32 issue.
413 kes Simplify search of autochanger for in-use Volume.
414 kes Fix exit condition of check for in-use volume. kes Remove
415 inappropriate my_postgresql_free_result() in db_close()
417 kes Fix bad return in FD when encryption signature not found.
418 Probably caused a crash.
419 kes Inhibit missing encryption signature error messages for
420 file types where no signature computed.
421 kes Correct inverted check on autochanger in reservation system.
422 kes Tweak debug code in autochanger reservation.
424 kes Add some additional locking in the cats directory in subroutines
425 that modify packet variables called from batch insert.
426 kes Rework how dcrs are allocated. new_dcr() can now be called
427 with an existing pointer, and it will simply clean it up.
428 This allows the reservation system to test various different
429 devices, and will permit easy device changes.
430 kes A bunch of changes all over to handle new new_dcr() calling
432 kes Work more on the Volume management in the SD. Remember Volumes
433 for tape drives and for autochangers (even virtual disk changers).
434 kes When looking at the Volume list to reserve a drive, handle
435 autochanger names correctly by interating through the changer
436 devices. Also call the Director to see if a Volume is suitable
438 kes Fix some bugs in bscan. Make sure all media records are written.
439 Make sure that valid JobMedia records are written for disk files.
440 Previously they were completely wrong.
441 kes Move source tar files for depkgs-mingw32 to www.bacula.org so
442 that the URLs don't change and so that the developers will all
443 work off the same copy. Rebuild from scrach.
444 kes Upgrade Win32 SQLite3 from 3.3.8 to 3.3.17.
448 kes Fix seg fault in FD from incorrect digest size.
449 kes Fix argument to non-OpenSSL crypto.c subroutine.
453 kes Remove a few malloc()s from the encryption code.
454 kes Use the class calls to bsock in filed/backup.c and restore.c in
455 place of the old bnet_xxx code.
456 kes Implement code that does an on the fly calculation of the
457 signing digest during restore of encrypted files. It makes
458 a best guess at the algorithm, and if it is not correct, will
459 then revert to the old code which reads the file after it is
461 kes Implement at least one missing crypto stream in stream_to_ascii()
462 kes Apply patch from William <chowmeined@gmail.com> that fixes bug
463 #877 where a reload with bad syntax causes Dir to exit.
465 Cut: 2.1.14 beta (not released)
467 kes Do not free a volume on a tape drive until another volume is
468 mounted and read, or the autochanger unloads the volume.
469 This should help the SD re-use volumes that are already mounted,
470 and should fix bug #886.
471 kes Apply patch from user brettedgar that allows gnome2-console include
472 the OpenSSL libraries, and hence work with SSL. Fixes bug #885.
473 kes Apply patch from Lucien Weller that fixes day of week calculation
474 because of DST flag problem. Fixes bug #887.
476 kes Move find_next_appendable_volume() to after acquiring a valid device
477 in reserve.c. This fixes bug #864 -- confirmed by reporter.
479 kes Unable to reproduce bug 872. However added additional testing for
481 kes Bug #874 resolved by documenting SQLite limitations.
482 kes Bug #882 resolved by documenting mtx-changer script for new drive code.
483 kes Bug #881 resolved by removing typo in mtx-changer script.
484 kes Made Frank Sweetser's wiki the official Bacula wiki with his
485 approval. Added a link to the wiki on the web page, and implemented
486 a backup from http://paramount.ind.wpi.edu
488 kes Fix update allfrompool to pass pool name.
490 kes Convert to pure GPL v2 license.
491 kes Fix sscanf problems reported by Peter Buschman that caused
492 a bus error on Solaris.
493 kes Rework (simplify) the select prompt in bat.
494 kes Move get_jobid_from_tid() into lib and create a
496 kes Use get_jcr_from_tid() to conver all tls Emsg() to Jmsg(). This
497 should definitely fix the problem of lost error messages in the
499 kes Remove over zellous addition of FSFE copyright in a few eggxxx files.
500 kes Eliminate tcpd.h from the project. Enclose the #include from the
501 library with extern C ...
502 kes Add print of signal name when a signal is trapped.
506 kes Fix a seg fault in the PostgreSQL driver dereferencing a NULL pointer.
508 kes Implement SQLITE3_INIT_QUERY in version.h that can do an initial
509 query for SQLite3. Use it to set PRAGMA synchronous = OFF. This
510 makes SQLit3 run 30 times faster, though a bit less safe.
511 kes Implement --with-batch-insert in configure and detection of thread
512 safe libraries. It is on by default, but turned off if no thread
513 safe library (e.g. SQLite 2) is available.
515 kes Fix Bacula PostgreSQL buffer overruns.
516 kes Do better checking for NULL results returned from PostgreSQL;
517 implement retry for failed queries; clear results buffer after
518 failed query. Hopefully this will correct the PostgreSQL failures.
520 kes Implement algorithm to handle only one appendable volume with
521 Prefer Mounted Volumes = no.
522 kes Fix a Bacula PostgreSQL bug dereferencing a NULL pointer
523 returned from a query.
524 kes Make volume lock recursive.
525 kes Implement an additional volume reservation algorithm that
526 starts by considering all reserved volumes then uses the
527 old brute force algorithm of searching the resources to
528 find a suitable device.
529 kes Add new reservations debug code and refine the old code.
530 kes Update the win32/dll/bacula.defs file.
532 kes Tweak reservations algorithm to permit a few more cases, i.e.
533 volume reserved, but on different drive, ...
534 kes Enhance SD status to include Pool and Media Type for drive in a
535 more readable format (a bit longer).
536 kes Fix PostgreSQL double free.
538 kes Minor refactoring of restore decryption code.
539 kes Add code to smartall.c to detect double free of a buffer.
541 kes Add < > around %r in from field on mail command of bacula-dir.conf.in
542 so that bsmtp will create a correct email address (mailbox only).
543 kes Modify 'memory' command so that the buffers are listed as 'In use'
544 to avoid confusion with Orphaned buffers.
545 kes I reworked the OpenSSL include/lib flags to be handled in
546 the standard Bacula way, which should fix bug #863 concerning
547 non-standard OpenSSL libraries.
549 kes Implement Help Browser window for bat.
550 kes Fix reload bug that reset StorageId to zero.
552 kes Fix TLS #ifdefing when TLS turned off.
553 kes Ensure that when labelling a tape with Slot=0 that InChanger
555 kes Use DISTINCT to make MySQL and PostgreSQL uar_list_temp query
557 kes Add StartTime to final uar_sel_jobid_temp query so that we can
558 add DISTINCT (required by PostgreSQL).
559 kes Implement BSOCK authenticate_director() method. Eventually will
560 authenicate all daemons.
561 kes Move several more functions into the BSOCK class.
563 kes Add code to tell the OS that we no longer need a cached
564 file that we were reading. In findlib/bfile.c. Also,
565 only cache files that we are reading. Thanks to
566 Tobias Oetiker <tobi@oetiker.ch> for the idea.
567 kes Tweak to bsmtp to eliminate compiler warnings on Win32.
568 kes Implement script to automatically generate cats and dll .def
570 kes Update README.mingw32 to include new .def file generation.
571 kes Correct typo in UTF-8 error message as reported by:
572 jhernandez <julianhernandez@gmail.com>
573 kes Add additional sm_check() code on debug level 1.
574 kes Set default debug level to 1.
575 kes Trap SIGABRT in attempt to get traceback.
577 kes Reduce bat connect timeout from 30 to 15 seconds.
578 kes More restructuring and implementing BSOCK class in place of
580 kes Remove a few unnecessary malloc() tests in crypto code.
581 kes Turn off crypto calls for > 128 bits in crypto.c if HAVE_SHA2
582 not defined. Bug reported by Allan Black <Allan.Black@btconnect.com>
583 kes Remove duplicate HAVE_CRYPTO definition in config.h.in
585 kes Fix Verify InitCatalog mysql_escape_string() trashing memory.
587 kes Fix Verify InitCatalog. The attributes were not pointing to the
588 correct saved location.
589 kes Implement message callback so that GUI is sure to get all
590 daemon messages. Currently displayed in a dialog in bat.
591 kes Ignore SIGUSR2 (Bacula timer) in bat.
592 kes Apply regress patch from bug #859 to allow regress to work
593 with Solaris compiler.
595 kes Begin adding TLS support to bat.
596 kes Apply UTF-8/16 patch from Yves Orton <demerphq@gmail.com> to
597 clean up lex.c and make it more readable.
599 kes Move more bnet functions into the BSOCK class.
600 kes Fix tray-monitor by not requiring a timer interval in bnet_connect()
601 kes Complete change of berrno strerror() method to bstrerror()
605 kes Cleanup incorrect email addresses in bsmtp.
606 kes Make bat display initial messages rather than discard them.
608 kes First cut of adding .mod to the run command.
609 kes Implement auto display of messages in bat.
610 kes Enhanced preferences to allow all Bacula output to be
613 kes Try to make bsmtp date routines more generic.
614 kes Fixed bug #856 autochanger documentation.
615 kes Rework bsmtp date editing for Win32. This fixes bug #854.
616 kes Add new cats entry point so Win32 builds.
618 kes Attempt to fix bsmtp date editing on OSes without %z editing.
620 kes Do better checking for the MySQL 64 bit libraries looking for both
621 .a and .so libraries.
622 kes Add a kludge for Ubuntu's non-standard locations for MySQL -- allow
623 /usr/include/mysql/mysql.h AND /usr/lib/... rather than /usr/lib/mysql/...
624 kes Require the thread safe version of MySQL during configure. Thanks
625 to Andre Noll for pointing this out.
626 kes Ensure that calls to find_jobids_from_mediaid_list() check count before
627 continuing in migration code.
628 kes Apply implementation of tray-monitor font derived from gnome-console
629 submitted by Andreas Piesk <a.piesk@gmx.net>
631 kes Eliminate important memory loss in SQLite
632 kes Fixed the batch insert MySQL thread specific data that was not
633 being freed. See cats/mysql.c:db_thread_cleanup().
634 kes Fix restore before command.
635 kes Convert old hdr.name to name() in a few places.
636 kes Implement update jobid command.
637 kes Return all time_t dates in db_get_job_record()
638 kes Stop watchdog in SD earlier.
639 kes Put Pool just after Storage in please mount message.
640 kes Fix pointer usage bugs in Verify InitCatalog pointed out by
643 kes Update the po files.
644 kes Fix Verify InitCatalog by making it cache attributes.
646 kes Change name bacula-bat to bat for man 1 page to correspond to
648 kes Check for client and store NULL pointers in status command. This
650 kes Fix non-ssl build so that it works (add JCR *jcr to crypto structures).
651 kes Fix sign extended editing of %p.
652 kes Clean out a little old #ifdefing in cats/mysql.c
654 kes If time diff between DIR and FD is more than 600 seconds convert
655 INFO message to WARNING.
656 kes Implement heap size display in status for all daemons.
657 kes Attempt to fix MySQL db open memory loss (not successfull).
658 kes Don't set SIGKILL and SIGSTOP neither can be trapped.
659 kes Eliminate memory loss in MySQL (possibly other SQLs) during
660 Query. This looks like a MySQL but but by doing extra releases,
661 the memory goes away. This should fix bug #847.
663 kes When backup fails, cancel SD before waiting for sd termination.
664 kes If SD is waiting for FD to connect during cancel, wake up the
666 kes Fix fsf code so that errno is correctly reported.
667 kes Apply migration patch (with changes) from Sergey Svishchev <svs@ropnet.ru>
669 kes Make lack of Pool directive in Job an ERROR_TERM rather than FATAL
670 so that Bacula doesn't later stumble into a seg fault.
671 kes Use the term Restore Client in the restore Job report.
672 kes Merge patch from Sergey Svishchev <svs@ropnet.ru> that preserves
673 the original job's FileSetId.
674 kes Merge patch from Sergey Svishchev <svs@ropnet.ru> that implements
675 spooling in migration jobs. Not yet tested.
676 kes Merge patch from Jorj Bauer <jorj@seas.upenn.edu> that implements
677 reading conf file from a pipe. However, do it with open_bpipe()
678 rather than popen. Not yet tested.
680 kes Fix an ugly bug where the VolCatBytes were getting updated
682 kes Implement bconsole memory command that prints current memory
683 usage, plus smartalloc dump.
684 kes Clarify some error messages in backup, admin, and migrate.
685 kes Shrink label dialog to smaller size.
686 kes Invert Cancel OK buttons on restore to be OK Cancel.
687 kes More strerror() to bstrerror() conversions.
689 kes Start implementing bstrerror() in place of strerror().
690 kes Stripping path -- seems to work.
692 kes Prevent door and port files from being restored (mostly
694 kes Free an unreleased buffer in compat code.
695 kes Change console Job name from *Console* to -Console- to eliminate
696 Win32 filename problems. Put Win32 path separator when creating
697 Console file. This fixes bug #846.
698 kes Change berrno::strerror() to berrno::bstrerror(). Not yet full
700 kes Pass jcr to crypt_sign_decode because it creates a new SIGNATURE
702 kes Define b_errno_win32 on Linux to be zero so that it can be or'ed in
703 to force Win32 error message.
705 kes First cut strip path. The data should be passed to the FD,
706 but nothing is done with it yet.
707 kes Enhance the digest and signature routines in the crypto
708 library to accept a JCR and to use it to print error messages
709 so that they will go in the Job report rather than the daemon's
711 kes Simplify some of the verify signature code.
712 kes Simplify a few of the alternative returns in the signature
715 ebl Use only POSIX regex instead of GNU regex in breg.c for
716 File relocation. It fix broken freebsd compilation.
717 kes Convert all other Dir files to use new ua class message
719 kes Tentative fix for missing digest signature in bug 807.
720 kes Correct handle problem in new win32_ftruncate routine.
721 kes Convert ua_purge.c and ua_update.c to use new ua class
722 message routines for bat.
724 kes Correct incorrect installation of LICENSE in Win32 installer.
725 kes Display LICENSE at the beginning of the Win32 install.
726 kes Attempt to correct the need for the png files to be installed
728 kes Reapply my bat.conf install script in qt-console. I think I
729 editted bat.pro instead of bat.pro.in and it was lost.
730 kes Apply CentOS patches someone sent me. Checks for /var/run/subsys,
731 the /var/lock/subsys for subsysdir. Also corrects typos in the
734 kes First cut update job.
735 kes Correct configure to include qmake of src/qt-console directory.
737 kes Make restore job yes/mod/no print in one command so GUI works.
738 kes First cut implementing backup and restore client.
739 kes Correct editing in Verify output that caused a seg fault.
741 kes Insure that bat.conf is not overwritten during installation.
742 kes Fix important bug in db_sql_query() in mysql.c. It was introduced
743 while I was implementing migration in March 2006 !
745 ebl Cleanup file relocation, using char *RegexWhere instead of
746 char *where + bool where_use_regexp
747 kes Update some manpages and add bat manpage.
748 kes Make a first cut at converting bacula.spec.in for bwx-console
750 kes Apply patch from John Goerzen to add hostname as fourth argument
751 to make_catalog_backup script.
752 kes Fix typos I introduced into bsmtp.c
753 kes Make pm_strxxx() routines handle input of NULL pointer. This
754 is to protect from NULL pointers returned from SQL databases.
755 kes Correct typo in bacula-sd manpage as pointed out by John Goerzen.
756 kes Add more debug to FIFO code -- fix fifo regression test.
758 kes Implement posix_fadvise in FD, and for reading spool files in SD.
759 kes Add thread timer to bnet_connect() to break from OS if wait time
762 kes Update Win32 build to include new files, new symbols, and
764 kes Implement socket level heartbeat (tcp_keepidle)
765 ebl Commit File relocation patch
766 kes Make bat have 'make install' target.
767 kes Warn during install if old gnome-console binary found.
768 kes Warn during install if old wx-console binary found.
769 kes Add -8 option to bsmtp command line to add content type utf-8.
770 Fixes bug #809. (Character coding problem in bsmtp).
771 kes If < is found in target (from, to, cc) then do not enclose the
772 target in < > in bsmtp. Fixes bug #772 (malformed address).
773 kes When printing certain items in dbcheck, stop after 300000.
774 Fixes bug #822. (dbcheck loops).
775 kes Incorrect status in Dir after waiting for mount with poll set.
778 kes Extend idea of Prefer Mounted Volumes to mean a volume about
780 kes Print waiting to reserve a device every 5 mins.
782 kes Don't call close_part in label.c if tape and relabel.
783 kes Don't free volume if busy in close() -- should help with
785 ebl Fix #824 RunScript bug (After script could be execute twice)
786 Now, Before Script can use RunsOnSuccess and RunsOnFailure options
787 By default (like before) RunsOnSuccess=true and RunsOnFailure=false
788 Add a regression script to test RunScript
790 kes Correct usage of MTIOCLRERR ioctl for clearing persistant errors
793 kes The bgnome-console (gnome-console) and bwx-console (wx-console) are
794 deprecated. No additional bugs will be fixed, and they will be dropped
795 in a future release (probably 2.4.0).
796 kes Change name of wx-console to bwx-console to make it more Bacula
798 kes Change the name of gnome-console to bgnome-console to make it
801 kes Some time in March, a Feature Request with patch from Jorj Bauer
802 <jorj@seas.upenn.edu> was committed by Landon (with my approval).
804 The ability for the director to validate a Client (FD) CN against
805 an arbitrary set of patterns rather than the hostname, with
806 A new 'TLS Allowed CN' set of directives which are implemented
807 in the Client resource. Then pattern matching is used in place
808 of hostname matching against the Certificate's CN. As an example, we
809 have certificates which (a) use a local CA, and (b) have a CN of the
811 kes Add new/changed entry points to Win32 build
812 kes Create unaccepted-projects for projects that are not accepted.
813 kes Simplify locking in the reservations system.
814 kes Add more debug code in reservations.
815 kes Make sure error condition on reserving a volume is handled correctly.
816 kes Correct handling of volume_in_use.
817 kes Correct handling of initializing a device.
818 kes Move handling of broadcasting releasing a device into release_device().
819 kes Correct attaching dcr to dev so that it is only done if device
820 is properly initiated.
822 kes Locking debug level tweaks in SD.
823 kes Tweak new Volume code.
825 kes Add exec external-command [wait-seconds] to bconsole. This
826 executes the external-command. Note! normally external-command
827 should be enclosed in double quotes.
828 kes Turn the .die command on only if DEVELOPER is defined -- i.e.
829 it should normally be off in a production system.
831 kes Implement die command for SD so that we can force it to dump.
832 kes Implement SD lock debug code.
833 kes Implement new algorithm for keeping Volume list in SD. It
834 is now owned by the device.
836 kes Implement new code for freeing in use volumes that should
837 resolve if not all, some of the problems of multiple drive
838 tape conflicts described in bug 801.
840 kes Fix gui/bacula-web/images files in svn.
841 kes Turn on FreeBSD/OpenBSD code to set EOT model on tape.
843 ebl Fix a bug in batch mode (in string escape)
844 kes Correct migration prune SQL typo that crept in in a
847 kes Move bnet_despool() into class in bsock.c
848 kes Modify job report to include director name and Build OS.
849 kes Move drop root privilege and check_catalog() before fork.
850 kes Add update database scripts (version 9 to 10) to updatedb directory.
852 ebl Check size and age of each file after its backup to see if
853 it has changed during backup, if 'checkfilechanges' is set.
854 The FD will do an extra check (stat(2)) after
855 each file backup. mtime, ctime and size are compared with
856 'before backup' information. If time or size mismatch, an
857 error message will be generated. You must upgrade FD to use it.
859 kes Make database name and user configurable
860 --with-db-name=xxx --with-db-user=xxx
861 kes Add back database type to message.c for debugging.
863 kes Implement dir_sql() which issues an SQL query.
864 kes Modify bat medialist to use dir_sql() and do some minor C++
865 formatting as well as eliminating a number of pointers, simplifing
868 kes Fix some of the mtx-changer grep commands for tape label readers.
869 kes Convert a number of bsendmsg into the appropriate send/warning/error
871 kes Suppress the using database message in the .sql command.
872 kes Correct an incorrect bnet_tls_client prototype -- patch from Martin.
874 kes Add context menu for floating a window.
875 kes Some minor cleanup and name changes in qt-console
876 kes Add doing mt setblk 0 in Win32 mtx-changer.
877 kes Apply Martin's bug fix to move definition of ENODATA for
879 ebl Add a BUSY handler to sqlite to be able to use multi_db = 1 with
882 kes More pruning cleanup.
883 kes Turn on wait_for_drive by default in mtx-changer.
884 kes Turn on Batch insert code by default as it now passes regression.
885 kes Add ./configure --enable-bat to enable building of Bat.
886 No install yet though.
888 kes Implement a new .sql command for bat.
889 kes Implement code to turn off pruning in obtaining the next volume.
890 Pruning is turned off for the status dir command, but turned on
891 for SD requests and for the list nextvolume command.
893 kes Correct Qmsg() that was not updated correctly when committing a
894 previous change (probably the recent TLS patch).
896 kes Write new subroutine is_volume_purged() that explicitly checks
897 if the Volume is purged, and if so marks it as such. This should
898 resolve problems reported about needing to mount twice to recycle
900 kes Rewrite pruning algorithm to do more work in the SQL engine, and
901 to pass a list of JobIds to be deleted to SQL. Also, minimize the
902 amount of duplicated code.
903 kes Do volume pruning only for the Media Type desired (reduces pruning time
904 if multiple Media Types are in the same pool).
905 kes Implement more detailed info in the Job report for the Bacula version
907 kes Switch from POOLMEM to POOL_MEM (a real class) in ua_prune.c and
909 ebl Add bbatch tool to bench database and insert mode.
910 Fix sql quote stuff in batch mode
911 Fix sql stuff for mysql
913 kes Correct problems with am/pm scheduling. Fixes bug #808.
914 kes Implement new prunning code that prunes up to 1000 jobs at
915 the same time. The same technique can be applied to a number
916 of other prune/purge subroutines.
917 kes Add an insanity check when starting a new tape job to ensure
918 that the tape position has not been changed. If so fail the
920 kes Fix Win32 build for dlls to add the folllowing:
921 src/lib/bsock.c -- new file with new entry points
922 src/lib/dlist.c -- new entry points
923 src/cats/sql_create.c -- new entry point
924 src/cats/sql_cmds.c -- new DATA item exported
926 ebl batch mode cleanup bscan-test is ok now.
927 kes Implement SD code to check length of disk volume before appending.
929 kes Correct return status on db_batch... routines.
930 kes Add call to db_write_batch_file_records() to migration code.
931 ebl Fix AfterJob timing
932 kes Move the checking of the database in initializion of the Director
933 to after we drop privileges. This avoids the need for both root
934 and bacula access to the DB.
935 kes Correct a misplaced variable definition in src/filed/backup.c
936 kes Correct how the new batch insert db_create_attributes_record()
937 uses the arguments. Caused a seg fault in bscan.
938 kes Implement lock() and unlock() methods in DEVICE class.
939 Implement block() and set_block(xx) methods in DEVICE class.
940 kes Modify bnet_connect() so that it uses time() to check for the
941 wait time expiring (on some OSes, some system calls may not
943 kes Modify Verify to obtain the previous JobId when it is actually
944 running rather than at schedule time (as it was in 1.38.x).
945 kes Fix src/job.c to handle MaxWaitTime correctly. This should
947 kes When checking pid in pid file, continue running if the pid is
948 the same as ours. This occurs on IRIX after a system crash.
951 kes Extend new GUI API.
952 kes Make the ua structure a class, and implement send_msg(),
953 error_msg(), warning_msg(), and info_msg().
955 kes Apply fix from for building wx-console on the Mac from
957 kes Implement new select mechanism for GUI programs.
958 kes Reorganize initialization of stackedWidgets in bat.
960 kes Add updated nagios plugin supplied by Christian Masopust.
962 kes More bat implementation.
963 kes File migrate bug with Pool Occupancy using mediaid instead
964 of jobids. Fixes bug #795.
965 kes Fix orphaned buffers in filed backup and verify due to
966 crypto buffers not freed during errors. Fixes bug #789.
967 kes Extend new GUI api code to tree commands.
968 kes Ensure that tree and dot commands check console ACLs.
969 kes Permit marking directory with trailing slash.
970 kes Allow 20 console connections (instead of only 10).
972 kes Add smartctl call to bacula-sd.conf as an example of getting
975 kes Modify jobq.c to let simultaneous restore jobs run. This may
976 cause them to fail if they cannot get a drive.
977 kes Add Client Connect Wait to Storage daemon to permit users to
978 modify the time the SD waits for a FD connection.
980 kes Correct virtual changer check which was backwards. This caused
981 volumes to be unloaded into slots already occupied.
983 kes Apply Command ACL filter to JobId list in restore command.
984 kes Correct typeo in var.c patch.
986 kes Don't let Bacula prune File or Job records for the current Job.
987 kes Fix variable substitution pad + inc bug reported (with patch)
990 kes Correct SQLite log table index as reported by Luca Berra.
992 ebl fix fifo stuff, bacula tries to rewind the fifo... Thanks to Andreas
994 kes Begin implementing new comm signals for API.
995 kes Fix a few places in lib/message.c where the open fd may
997 kes Continue implementing lib/bsock.c (real class). Make jcr,
998 who, host, and port private. There are new methods to access
999 them for non-class use. This required touching a number of files.
1001 kes Add LANG=C to autoconf/randpass so it works with languages other
1002 than English. Fixes bug #788.
1004 ebl Revert ClientRunBeforeJob to old position as in 1.38.X.
1006 You will not be able to generate Include/Exclude list any more.
1007 It will be fixed soon.
1008 If you want to use this, you can apply
1009 trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch
1011 kes Restore of sockets created false error messages because Bacula
1012 no longer restores sockets, but the code was still trying to
1013 set the attributes on a non-existent file. Reported by a user.
1014 ebl finish RecyclePool feature
1015 Media will takes Pool.RecyclePool
1016 when moving from Scratch to a Pool or when user will do
1017 update volume=xxx frompool
1018 To use it, add RecyclePool = aPool to your Pool resource
1021 RecyclePool = Scratch
1025 kes Expand new BSOCK class adding signal() and new BNET signals.
1026 kes Begin enhancing the dot commands adding a new API function
1027 that returns more information and will make it easier
1028 to interface to the Director from a program.
1030 kes Make DEVICE fd private. Its new name is m_fd, and can be
1031 obtained with dev->fd() outside the class. This is the
1032 first of many DEVICE members to be made private.
1033 kes Implement Michael Renner's idea on having a virtual disk
1034 changer. I made some minor modifications (e.g. I did not
1035 implement the Virtual Changer directive, but simply set
1036 the Changer Command to an empty string.
1038 kes Implement a BSOCK send() method that writes the whole record
1039 in a single write() request rather than in two.
1040 ebl add update volume=xxx recyclepool=yyyy
1041 volume takes recyclepool from pool when using update volume=xxx from pool
1043 kes Fix encryption deblocking bug, which caused some restored files
1044 to be truncated. This fixes bug #763.
1045 kes Add FD event sequence order prepared by Eric -- for RunScripts.
1046 kes Fix 12am/pm bug as reported in bug #782 -- scheduler problem.
1048 kes Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1.
1049 ebl Use btime_t instead of uint64_t in media patch.
1051 kes Optimize the use of the database a bit in the Status dir command.
1052 Only open it when needed, ensure that if any previous database
1053 was opened, it is closed.
1055 kes Correct VolCatBytes bug from media patch.
1056 kes Apply patch from bug #612 by Rudolf Cejka to speedup pruning
1057 in the case of orphaned records.
1058 kes Modify dbcheck to handle orphaned JobMedia, Path, Filename,
1059 and File records in 300K chunks to be more efficient. This
1060 idea came from Juan Luis Frances (if I remember right).
1061 kes Apply Eric's scratch patch that moves a purged Volume to
1062 the RecyclePool. Question: how is RecyclePool set? what
1063 happens to the ScratchPool?
1064 kes Apply Eric's media patch that collects read/write media
1065 times as well as byte counts. This patch requires a
1066 simultaneous upgrade of the DIR and SD. Note, there
1067 should be some way to turn off timing. I'm not sure
1068 times are in Bacula units.
1069 kes Apply Eric's batch-insert patch.
1071 kes Update projects list.
1073 kes Implement Include/Exclude file lists in FD as dlists using
1074 the new dlistString class. This permits efficiently having
1075 large include/exclude lists and completes project Item 25.
1076 kes Fix dird/ua_cmds.c so that a cancel command checks if the
1077 console is authorized to cancel the job. This fixes bug
1079 kes Modify SD so that the VolCatJobs medium record is updated
1080 at the beginning of a Job rather than the end. This
1081 fixes bug #775 where exceeding MaxVolJobs caused jobs
1083 kes Added a mutex around getting and setting Volume information
1084 so that multiple simultaneous jobs will single thread.
1086 Switch to using Subversion
1087 kes Remove src/pygtk-console/ from configure
1089 kes Delete src/lib/btree.c from win32 build, then add rblist.c
1090 plus the entrypoints.
1091 kes Apply patch supplied that corrects debug print
1092 in canceling jobs for max run time. Supplied as
1093 part of bug #621, which was previously fixed.
1095 kes Test on job_canceled() and sd_msg_thread_done inside
1096 loop starting the message thread to avoid a race condition.
1098 kes Remove rl_catch_signal from console.c as it conflicted
1099 with the header definition. Fixes bug #765.
1100 ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive)
1102 kes Clarify some stored/acquire messages to indicate if the
1103 problem is with read or append.
1105 kes Fix memory leak with storage ids in cats/sql_get.c
1106 kes Terminate watchdog earlier to avoid reference to released
1107 memory -- reported by Jason Austin.
1108 kes Move closing the database from jobq.c to the director daemon
1109 termination routine. This fixes memory leaks for shadow jobs
1110 (i.e. migration jobs).
1111 kes Free up the unique jobid chain items in migrate.c. This fixes
1112 a memory leak problem.
1113 kes Convert some ugly looking for statements to use foreach_alist
1114 in findlib/find.c. This will facilitate converting the structures
1115 to use dlist (for large include/exclude lists).
1116 kes Fix a bug in the btree.c and btree.h routines, then rename them
1117 rblist and add them to be built in src/lib. Include some new
1118 methods written by Rudolf Cejka that make the code more readable
1119 (hides some of the ugly casting).
1120 kes Add set_next() and set_prev() methods which make the code much more
1121 readable. Also add a new dlistString class that facilitates storing
1122 strings in dlists. To be used in the large include/exclude lists.
1123 kes Make some trivial modifications to lib/tree.h that use rblist
1124 rather than dlist for storing the tree links. This was suggested
1125 by Rudolf Cejka. The result of this is that the restore tree now
1126 uses red-black binary trees rather than simple linked lists. This
1127 should give rather dramatic speed improvements for directories
1128 contining large numbers of directories/files (more than 10000).
1130 kes Fix maxruntime bug #621.
1132 ebl Implement the include JobID in spool file name project.
1133 kes Reorder projects file in order determined by Jan 2007 vote.
1134 kes Implement item #12 on project list -- quick release of FD by
1136 kes Fix open of SQLite3 db where user does not have write permission
1137 so that DIR does not crash. Fixes bug #761.
1139 kes Add back missing @ in Win32 Makefile.
1140 kes Change 'Device not configured to autolabel' from INFO
1142 kes Fix jobq.c to restart failed jobs when Reschedule Times = 0
1143 which should restart an indefinite # of times.
1144 kes Fix configure --help to print --with-mysql[=DIR]. Same for
1145 other DIR specifications.
1147 rn Fix msvc build problems. Fix bacula.dll exports for msvc build.
1148 Fix path quoting in SQLite scripts.
1149 Fix problems with SHGetFolderPath.
1151 kes Create patches/2.0.1-restart.patch. Fixes bug #755.
1153 kes Fix Job restart on error bug that promotes an Inc to a Full
1154 backup. This should fix bug #755.
1155 kes Add qt-console and first cut of code.
1159 kes Fix Bacula->Documentation link on Win32 to point to index.html
1160 instead of bacula.html. Fixed bug #750.
1161 kes Return JobId in db_get_job_record() when JobId==0. This should
1163 kes Do not release source pointers when restarting a failed job.
1165 kes Add dynamic dll entry point for SHGetFolderPath to Win32 code.
1166 This *should* fix bug #747.
1167 kes Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix
1170 kes Modify USTORE constructor to set an empty store_source string,
1171 and don't copy the store_source string in a cancel. Hopefully
1172 this will fix Arno's seg fault, bug #744.
1173 kes Add back code to disable conio in configure. Fixes bug #743.
1174 kes Correct the Options scanner in the FD to correctly handle
1175 SHA1 option, which was eating the next option. Reported by
1177 kes Add code to indicate when the SD is spooling, spool wait, and
1178 despooling as requested by Alan Brown.
1180 Version 2.0.0 released: 4 January 2007