1 Technical notes on version 2.1
5 kes Modify most of dird/msgchan.c to use bsock class calls rather than
6 bnet calls -- no functionality change.
8 kes Modify the Verify output to specify if files are missing on
9 the Volume(s) or disk. Fixes confusion in bug #916.
10 kes When more than one Volume is read in a migration job, the last
11 Volume bytes reported are from the last read volume rather than
12 the last written volume. Fixed. This fixes bug #910.
13 kes Fix display of Recycle flag after update volume=foo recycle=yes.
14 It previously printed New Recyle flag is: no. This fixes bug
17 kes Correct seg fault when switching tape drives during restore.
18 kes Commit uid_gid_name.c (replacement for idcache.c), but will not
19 be used until after 2.2.0 release.
21 kes Remove fnmatch() in SD that permitted wild card specifications.
24 kes Fix %g in filename returned by SQL for browse tree reported by
26 kes Fix configure so that it puts config.out in the cwd rather than
28 kes Attempt to fix the locking problem reported by Eric in bug #906.
29 kes Make berrno class to leave errno unchanged after constructor call.
30 kes Make bnet_server use the heap rather than the stack to allocate
31 its socket fd pointers to avoid a crash at termination. Problem
32 reported by Ryan Novosielski and bugs pointed out by Martin Simmons.
34 kes Create new depkgs and depkgs-qt separating the qwt out of depkgs
35 and putting it in depkgs-qt along with Qt4.3.
37 kes Rework code in acquire.c that switches drives for reading when
38 the Media Type does not match. This should fix bug #906
40 ebl Fix a director segfault during job setup #907
41 kes Correct seg fault in postgresql when first operation returns no
42 rows. Fixes Dirks File browser problem seg fault with bat.
44 kes Apply patch from Felix Schwarz <Felix.Schwarz@web.de> that allows
45 building wxconsole on Fedora 7 with wxWidgets 2.8 (it works with
48 kes Implement PopUp YES/NO dialog for bat.
50 ebl Fix a compilation bug when using #define BACL_WANT_NUMERIC_IDS
52 kes Correct RunScript to terminate job in FD on failure.
53 kes Change abort_on_error and AbortJobOnError to fail_on_error
54 and FailJobOnError in RunScripts.
55 kes Minor tweaks of code formating in RunScripts, principally to
56 avoid depassing 80 columns.
58 kes Eliminate one #ifdef Win32 in bsmtp
59 kes Implement grow tool to grow a file for testing very large databases.
60 kes Add big-vol-test to test Bacula seeking with > 5GB.
63 kes Modify find_next_volume() to return all values in Media record.
64 kes Ensure that we keep Recycle Pool when moving Scratch volumes.
66 kes Update Release notes
68 ebl fix a bug in get_scratch_volume() report by Andreas Helmcke
69 Warning, in previous beta version, all media get from scratch keep their
72 kes Tweaked Win32 installer to remove temp conf files at uninstall time.
73 This should fix bug #842. Made a note to look at removing the temp
74 files at the end of the install.
75 kes Add ability to mount and unmount a file device providing it is
76 marked as being removable and has the appropriate mount and unmount
77 commands defined in the Device resource. This fixes bug #830.
78 kes When applying a storage override, release all previous storage
79 definitions rather than just prepending the new storage.
80 This should prevent a good deal of confusion.
82 kes Implement ./configure search for qwt libraries.
84 kes Disable posting the WM_CLOSE message in KillRunningCopy of the
85 Win32 FD. This should fix bug #893.
86 kes Remove an unnecessary beep in Win32 init code.
87 kes Update copyright dates in Win32 executable about boxes.
88 kes Replace the FSF copyrighted getopt.c and getopt.h in the Win32
89 code with a BSD getopt.c and getopt.h.
90 kes Remove sched.h from the Win32 compat directory -- not used.
91 kes Remove the Exit menu item from the Win32 tray monitor. If you really
92 need to shut it down, do it through the services panel or the command
94 kes Remove some inappropriate Bacula FSFE copyrights.
95 ebl Tweak status client=xxx to be more easy to parse (more like in 2.0.x)
96 kes Fix regress config non-portable test as pointed out by
97 Florian Heigl <florian.heigl@gmail.com>
98 kes Fix PSCMD for HP-UX in configure.in to have proper syntax.
99 as pointed out by Florian Heigl <florian.heigl@gmail.com>
101 kes Fix missing rctx. prefixes on the Darwin code in src/filed/restore.c
102 Reported by Frank Sweetser.
106 kes Fix client-only build.
107 kes Integrate client-only fixes for bsys (initgroups) and conio from
108 Sergey Svishchev <svs@ropnet.ru> for the AIX platform.
109 kes Make arguments to get_scratch_volume() in same order as other
111 kes Rework the prune_volumes() subroutine so that after purging and
112 no volume found in desired pool, it will check for a scratch
113 volume. This prevents recycling the whole scratch pool.
114 kes Add code to status storage to print boffset_t (largefile support).
116 kes Move qwt (Graphics libarary for Qt4) to depkgs.
117 kes You now need a --with-qwt=<dir> to be able to build bat.
118 kes Update src/win32/cats/bacula_cats.def to include the new
119 db_get_query_dbids() call on Win32.
121 kes Correct a problem when selecting a scratch volume and moving
122 it to another pool that lost some columns.
123 kes Tweak some code in ua_update.c to use POOL_MEM instead of POOLMEM.
124 kes Enhance Autochanger error messages to include Volume and device name.
125 kes Rework prune_volumes() code to take account of InChanger flag,
126 and to handle recycling volumes going to the Scratch pool and
127 current pool because the RecyclePool directive.
128 kes Implement a better and more efficient db_get_query_dbids() to
129 handle creating and passing back a list of DBIds.
133 kes Start work on new more efficient DBId subroutine. First use
134 will be for recycling volume to Scratch inchanger.
135 kes Increase number of JobIds in pruning from 1000 to 10000.
136 This to be replaced by above routine.
137 kes Begin implementation of building Qt4 on Win32.
138 kes Correct typo in fix I added for bad TLS shutdown.
139 kes Pull 2.0.3 patches into patches directory.
140 kes Update Release notes. Include qt-console in line count.
141 kes Update Projects file.
143 kes Integrate patch from Sergey Svishchev <svs@ropnet.ru> that fixes
144 bug in migration code where a job that spanned two volumes
147 kes Implement new BST_DESPOOLING blocked state. Change from locking
148 during despooling in SD to blocking. This means that other threads
149 can work with the device structure, in particular the reservations
150 system while despooling.
152 kes Fix return in reservation message queue that missed clearing
153 the jcr lock (implemented 26Jun07 below).
154 kes Rename a number of dev methods to make locking function names
156 kes Document locking in lock.c. Move lock structures to new file
159 kes Move reservations message lock to lock jcr only this
161 kes Move main SD locking code into lock.c (new file).
162 kes Update Win32 build to include lock.c
166 kes Dirk committed the qwt library code for drawing graphs in bat.
167 kes Tweak install of qwt so that it is integrated with ./configure.
169 kes Fix HAVE_BATCH_INSERT to be HAVE_BATCH_FILE_INSERT, pointed
170 out by Eric (my typo).
171 ebl Fix configure.in to get batch mode enable
172 kes Return correct string from authenticate.cpp in bat when connecting
174 kes Apply patch suggested by Frank Sweetser to fix bug #888 --
175 spurious line drops when using TLS.
176 kes Do not file reparse points when restoring a file that already
179 kes Implement Windows reparse points -- similar to directories, but
180 we do not descend into it. This is a first cut. They seem to
181 be backed up, but restore is not yet tested.
182 kes Remove restore_blocking in tls code when shutting a socket to leave
183 it in blocking mode. Hopefully this will fix the encryption bug
184 reported by Frank Sweetser.
185 kes When opening a file for backup, tell the OS that we are going to
186 read it sequentially -- optimization.
187 kes Change variable names in authenticate_director() to not conflict
188 with member names in bat. Caused great confusion with compiler,
191 kes Queue openssl error messages in case of comm problem.
192 kes Do shutdown() call if socket terminated.
193 kes Remove some duplicated code in tls.c
194 kes Move more of the bsock member variables into private and access
196 kes Add Frank Sweetser's tls-test to the regression suite.
198 kes Add Swedish sv.po file
200 kes Don't print clock skew message in FD if less than 3 seconds diff.
201 kes Add a bit of VSS info to status client.
202 kes Implement a first cut of Vista VSS, using Win2003 code.
206 kes Fixed bug #886 (multidrive autochanger: SD doesn't use drive with
207 loaded tape but uses first drive).
208 kes Fixed bug #807 Restore encrypted backup failed on Windows 2003
209 This was indeed a Win32 issue.
211 kes Simplify search of autochanger for in-use Volume.
212 kes Fix exit condition of check for in-use volume. kes Remove
213 inappropriate my_postgresql_free_result() in db_close()
215 kes Fix bad return in FD when encryption signature not found.
216 Probably caused a crash.
217 kes Inhibit missing encryption signature error messages for
218 file types where no signature computed.
219 kes Correct inverted check on autochanger in reservation system.
220 kes Tweak debug code in autochanger reservation.
222 kes Add some additional locking in the cats directory in subroutines
223 that modify packet variables called from batch insert.
224 kes Rework how dcrs are allocated. new_dcr() can now be called
225 with an existing pointer, and it will simply clean it up.
226 This allows the reservation system to test various different
227 devices, and will permit easy device changes.
228 kes A bunch of changes all over to handle new new_dcr() calling
230 kes Work more on the Volume management in the SD. Remember Volumes
231 for tape drives and for autochangers (even virtual disk changers).
232 kes When looking at the Volume list to reserve a drive, handle
233 autochanger names correctly by interating through the changer
234 devices. Also call the Director to see if a Volume is suitable
236 kes Fix some bugs in bscan. Make sure all media records are written.
237 Make sure that valid JobMedia records are written for disk files.
238 Previously they were completely wrong.
239 kes Move source tar files for depkgs-mingw32 to www.bacula.org so
240 that the URLs don't change and so that the developers will all
241 work off the same copy. Rebuild from scrach.
242 kes Upgrade Win32 SQLite3 from 3.3.8 to 3.3.17.
246 kes Fix seg fault in FD from incorrect digest size.
247 kes Fix argument to non-OpenSSL crypto.c subroutine.
251 kes Remove a few malloc()s from the encryption code.
252 kes Use the class calls to bsock in filed/backup.c and restore.c in
253 place of the old bnet_xxx code.
254 kes Implement code that does an on the fly calculation of the
255 signing digest during restore of encrypted files. It makes
256 a best guess at the algorithm, and if it is not correct, will
257 then revert to the old code which reads the file after it is
259 kes Implement at least one missing crypto stream in stream_to_ascii()
260 kes Apply patch from William <chowmeined@gmail.com> that fixes bug
261 #877 where a reload with bad syntax causes Dir to exit.
263 Cut: 2.1.14 beta (not released)
265 kes Do not free a volume on a tape drive until another volume is
266 mounted and read, or the autochanger unloads the volume.
267 This should help the SD re-use volumes that are already mounted,
268 and should fix bug #886.
269 kes Apply patch from user brettedgar that allows gnome2-console include
270 the OpenSSL libraries, and hence work with SSL. Fixes bug #885.
271 kes Apply patch from Lucien Weller that fixes day of week calculation
272 because of DST flag problem. Fixes bug #887.
274 kes Move find_next_appendable_volume() to after acquiring a valid device
275 in reserve.c. This fixes bug #864 -- confirmed by reporter.
277 kes Unable to reproduce bug 872. However added additional testing for
279 kes Bug #874 resolved by documenting SQLite limitations.
280 kes Bug #882 resolved by documenting mtx-changer script for new drive code.
281 kes Bug #881 resolved by removing typo in mtx-changer script.
282 kes Made Frank Sweetser's wiki the official Bacula wiki with his
283 approval. Added a link to the wiki on the web page, and implemented
284 a backup from http://paramount.ind.wpi.edu
286 kes Fix update allfrompool to pass pool name.
288 kes Convert to pure GPL v2 license.
289 kes Fix sscanf problems reported by Peter Buschman that caused
290 a bus error on Solaris.
291 kes Rework (simplify) the select prompt in bat.
292 kes Move get_jobid_from_tid() into lib and create a
294 kes Use get_jcr_from_tid() to conver all tls Emsg() to Jmsg(). This
295 should definitely fix the problem of lost error messages in the
297 kes Remove over zellous addition of FSFE copyright in a few eggxxx files.
298 kes Eliminate tcpd.h from the project. Enclose the #include from the
299 library with extern C ...
300 kes Add print of signal name when a signal is trapped.
304 kes Fix a seg fault in the PostgreSQL driver dereferencing a NULL pointer.
306 kes Implement SQLITE3_INIT_QUERY in version.h that can do an initial
307 query for SQLite3. Use it to set PRAGMA synchronous = OFF. This
308 makes SQLit3 run 30 times faster, though a bit less safe.
309 kes Implement --with-batch-insert in configure and detection of thread
310 safe libraries. It is on by default, but turned off if no thread
311 safe library (e.g. SQLite 2) is available.
313 kes Fix Bacula PostgreSQL buffer overruns.
314 kes Do better checking for NULL results returned from PostgreSQL;
315 implement retry for failed queries; clear results buffer after
316 failed query. Hopefully this will correct the PostgreSQL failures.
318 kes Implement algorithm to handle only one appendable volume with
319 Prefer Mounted Volumes = no.
320 kes Fix a Bacula PostgreSQL bug dereferencing a NULL pointer
321 returned from a query.
322 kes Make volume lock recursive.
323 kes Implement an additional volume reservation algorithm that
324 starts by considering all reserved volumes then uses the
325 old brute force algorithm of searching the resources to
326 find a suitable device.
327 kes Add new reservations debug code and refine the old code.
328 kes Update the win32/dll/bacula.defs file.
330 kes Tweak reservations algorithm to permit a few more cases, i.e.
331 volume reserved, but on different drive, ...
332 kes Enhance SD status to include Pool and Media Type for drive in a
333 more readable format (a bit longer).
334 kes Fix PostgreSQL double free.
336 kes Minor refactoring of restore decryption code.
337 kes Add code to smartall.c to detect double free of a buffer.
339 kes Add < > around %r in from field on mail command of bacula-dir.conf.in
340 so that bsmtp will create a correct email address (mailbox only).
341 kes Modify 'memory' command so that the buffers are listed as 'In use'
342 to avoid confusion with Orphaned buffers.
343 kes I reworked the OpenSSL include/lib flags to be handled in
344 the standard Bacula way, which should fix bug #863 concerning
345 non-standard OpenSSL libraries.
347 kes Implement Help Browser window for bat.
348 kes Fix reload bug that reset StorageId to zero.
350 kes Fix TLS #ifdefing when TLS turned off.
351 kes Ensure that when labelling a tape with Slot=0 that InChanger
353 kes Use DISTINCT to make MySQL and PostgreSQL uar_list_temp query
355 kes Add StartTime to final uar_sel_jobid_temp query so that we can
356 add DISTINCT (required by PostgreSQL).
357 kes Implement BSOCK authenticate_director() method. Eventually will
358 authenicate all daemons.
359 kes Move several more functions into the BSOCK class.
361 kes Add code to tell the OS that we no longer need a cached
362 file that we were reading. In findlib/bfile.c. Also,
363 only cache files that we are reading. Thanks to
364 Tobias Oetiker <tobi@oetiker.ch> for the idea.
365 kes Tweak to bsmtp to eliminate compiler warnings on Win32.
366 kes Implement script to automatically generate cats and dll .def
368 kes Update README.mingw32 to include new .def file generation.
369 kes Correct typo in UTF-8 error message as reported by:
370 jhernandez <julianhernandez@gmail.com>
371 kes Add additional sm_check() code on debug level 1.
372 kes Set default debug level to 1.
373 kes Trap SIGABRT in attempt to get traceback.
375 kes Reduce bat connect timeout from 30 to 15 seconds.
376 kes More restructuring and implementing BSOCK class in place of
378 kes Remove a few unnecessary malloc() tests in crypto code.
379 kes Turn off crypto calls for > 128 bits in crypto.c if HAVE_SHA2
380 not defined. Bug reported by Allan Black <Allan.Black@btconnect.com>
381 kes Remove duplicate HAVE_CRYPTO definition in config.h.in
383 kes Fix Verify InitCatalog mysql_escape_string() trashing memory.
385 kes Fix Verify InitCatalog. The attributes were not pointing to the
386 correct saved location.
387 kes Implement message callback so that GUI is sure to get all
388 daemon messages. Currently displayed in a dialog in bat.
389 kes Ignore SIGUSR2 (Bacula timer) in bat.
390 kes Apply regress patch from bug #859 to allow regress to work
391 with Solaris compiler.
393 kes Begin adding TLS support to bat.
394 kes Apply UTF-8/16 patch from Yves Orton <demerphq@gmail.com> to
395 clean up lex.c and make it more readable.
397 kes Move more bnet functions into the BSOCK class.
398 kes Fix tray-monitor by not requiring a timer interval in bnet_connect()
399 kes Complete change of berrno strerror() method to bstrerror()
403 kes Cleanup incorrect email addresses in bsmtp.
404 kes Make bat display initial messages rather than discard them.
406 kes First cut of adding .mod to the run command.
407 kes Implement auto display of messages in bat.
408 kes Enhanced preferences to allow all Bacula output to be
411 kes Try to make bsmtp date routines more generic.
412 kes Fixed bug #856 autochanger documentation.
413 kes Rework bsmtp date editing for Win32. This fixes bug #854.
414 kes Add new cats entry point so Win32 builds.
416 kes Attempt to fix bsmtp date editing on OSes without %z editing.
418 kes Do better checking for the MySQL 64 bit libraries looking for both
419 .a and .so libraries.
420 kes Add a kludge for Ubuntu's non-standard locations for MySQL -- allow
421 /usr/include/mysql/mysql.h AND /usr/lib/... rather than /usr/lib/mysql/...
422 kes Require the thread safe version of MySQL during configure. Thanks
423 to Andre Noll for pointing this out.
424 kes Ensure that calls to find_jobids_from_mediaid_list() check count before
425 continuing in migration code.
426 kes Apply implementation of tray-monitor font derived from gnome-console
427 submitted by Andreas Piesk <a.piesk@gmx.net>
429 kes Eliminate important memory loss in SQLite
430 kes Fixed the batch insert MySQL thread specific data that was not
431 being freed. See cats/mysql.c:db_thread_cleanup().
432 kes Fix restore before command.
433 kes Convert old hdr.name to name() in a few places.
434 kes Implement update jobid command.
435 kes Return all time_t dates in db_get_job_record()
436 kes Stop watchdog in SD earlier.
437 kes Put Pool just after Storage in please mount message.
438 kes Fix pointer usage bugs in Verify InitCatalog pointed out by
441 kes Update the po files.
442 kes Fix Verify InitCatalog by making it cache attributes.
444 kes Change name bacula-bat to bat for man 1 page to correspond to
446 kes Check for client and store NULL pointers in status command. This
448 kes Fix non-ssl build so that it works (add JCR *jcr to crypto structures).
449 kes Fix sign extended editing of %p.
450 kes Clean out a little old #ifdefing in cats/mysql.c
452 kes If time diff between DIR and FD is more than 600 seconds convert
453 INFO message to WARNING.
454 kes Implement heap size display in status for all daemons.
455 kes Attempt to fix MySQL db open memory loss (not successfull).
456 kes Don't set SIGKILL and SIGSTOP neither can be trapped.
457 kes Eliminate memory loss in MySQL (possibly other SQLs) during
458 Query. This looks like a MySQL but but by doing extra releases,
459 the memory goes away. This should fix bug #847.
461 kes When backup fails, cancel SD before waiting for sd termination.
462 kes If SD is waiting for FD to connect during cancel, wake up the
464 kes Fix fsf code so that errno is correctly reported.
465 kes Apply migration patch (with changes) from Sergey Svishchev <svs@ropnet.ru>
467 kes Make lack of Pool directive in Job an ERROR_TERM rather than FATAL
468 so that Bacula doesn't later stumble into a seg fault.
469 kes Use the term Restore Client in the restore Job report.
470 kes Merge patch from Sergey Svishchev <svs@ropnet.ru> that preserves
471 the original job's FileSetId.
472 kes Merge patch from Sergey Svishchev <svs@ropnet.ru> that implements
473 spooling in migration jobs. Not yet tested.
474 kes Merge patch from Jorj Bauer <jorj@seas.upenn.edu> that implements
475 reading conf file from a pipe. However, do it with open_bpipe()
476 rather than popen. Not yet tested.
478 kes Fix an ugly bug where the VolCatBytes were getting updated
480 kes Implement bconsole memory command that prints current memory
481 usage, plus smartalloc dump.
482 kes Clarify some error messages in backup, admin, and migrate.
483 kes Shrink label dialog to smaller size.
484 kes Invert Cancel OK buttons on restore to be OK Cancel.
485 kes More strerror() to bstrerror() conversions.
487 kes Start implementing bstrerror() in place of strerror().
488 kes Stripping path -- seems to work.
490 kes Prevent door and port files from being restored (mostly
492 kes Free an unreleased buffer in compat code.
493 kes Change console Job name from *Console* to -Console- to eliminate
494 Win32 filename problems. Put Win32 path separator when creating
495 Console file. This fixes bug #846.
496 kes Change berrno::strerror() to berrno::bstrerror(). Not yet full
498 kes Pass jcr to crypt_sign_decode because it creates a new SIGNATURE
500 kes Define b_errno_win32 on Linux to be zero so that it can be or'ed in
501 to force Win32 error message.
503 kes First cut strip path. The data should be passed to the FD,
504 but nothing is done with it yet.
505 kes Enhance the digest and signature routines in the crypto
506 library to accept a JCR and to use it to print error messages
507 so that they will go in the Job report rather than the daemon's
509 kes Simplify some of the verify signature code.
510 kes Simplify a few of the alternative returns in the signature
513 ebl Use only POSIX regex instead of GNU regex in breg.c for
514 File relocation. It fix broken freebsd compilation.
515 kes Convert all other Dir files to use new ua class message
517 kes Tentative fix for missing digest signature in bug 807.
518 kes Correct handle problem in new win32_ftruncate routine.
519 kes Convert ua_purge.c and ua_update.c to use new ua class
520 message routines for bat.
522 kes Correct incorrect installation of LICENSE in Win32 installer.
523 kes Display LICENSE at the beginning of the Win32 install.
524 kes Attempt to correct the need for the png files to be installed
526 kes Reapply my bat.conf install script in qt-console. I think I
527 editted bat.pro instead of bat.pro.in and it was lost.
528 kes Apply CentOS patches someone sent me. Checks for /var/run/subsys,
529 the /var/lock/subsys for subsysdir. Also corrects typos in the
532 kes First cut update job.
533 kes Correct configure to include qmake of src/qt-console directory.
535 kes Make restore job yes/mod/no print in one command so GUI works.
536 kes First cut implementing backup and restore client.
537 kes Correct editing in Verify output that caused a seg fault.
539 kes Insure that bat.conf is not overwritten during installation.
540 kes Fix important bug in db_sql_query() in mysql.c. It was introduced
541 while I was implementing migration in March 2006 !
543 ebl Cleanup file relocation, using char *RegexWhere instead of
544 char *where + bool where_use_regexp
545 kes Update some manpages and add bat manpage.
546 kes Make a first cut at converting bacula.spec.in for bwx-console
548 kes Apply patch from John Goerzen to add hostname as fourth argument
549 to make_catalog_backup script.
550 kes Fix typos I introduced into bsmtp.c
551 kes Make pm_strxxx() routines handle input of NULL pointer. This
552 is to protect from NULL pointers returned from SQL databases.
553 kes Correct typo in bacula-sd manpage as pointed out by John Goerzen.
554 kes Add more debug to FIFO code -- fix fifo regression test.
556 kes Implement posix_fadvise in FD, and for reading spool files in SD.
557 kes Add thread timer to bnet_connect() to break from OS if wait time
560 kes Update Win32 build to include new files, new symbols, and
562 kes Implement socket level heartbeat (tcp_keepidle)
563 ebl Commit File relocation patch
564 kes Make bat have 'make install' target.
565 kes Warn during install if old gnome-console binary found.
566 kes Warn during install if old wx-console binary found.
567 kes Add -8 option to bsmtp command line to add content type utf-8.
568 Fixes bug #809. (Character coding problem in bsmtp).
569 kes If < is found in target (from, to, cc) then do not enclose the
570 target in < > in bsmtp. Fixes bug #772 (malformed address).
571 kes When printing certain items in dbcheck, stop after 300000.
572 Fixes bug #822. (dbcheck loops).
573 kes Incorrect status in Dir after waiting for mount with poll set.
576 kes Extend idea of Prefer Mounted Volumes to mean a volume about
578 kes Print waiting to reserve a device every 5 mins.
580 kes Don't call close_part in label.c if tape and relabel.
581 kes Don't free volume if busy in close() -- should help with
583 ebl Fix #824 RunScript bug (After script could be execute twice)
584 Now, Before Script can use RunsOnSuccess and RunsOnFailure options
585 By default (like before) RunsOnSuccess=true and RunsOnFailure=false
586 Add a regression script to test RunScript
588 kes Correct usage of MTIOCLRERR ioctl for clearing persistant errors
591 kes The bgnome-console (gnome-console) and bwx-console (wx-console) are
592 deprecated. No additional bugs will be fixed, and they will be dropped
593 in a future release (probably 2.4.0).
594 kes Change name of wx-console to bwx-console to make it more Bacula
596 kes Change the name of gnome-console to bgnome-console to make it
599 kes Some time in March, a Feature Request with patch from Jorj Bauer
600 <jorj@seas.upenn.edu> was committed by Landon (with my approval).
602 The ability for the director to validate a Client (FD) CN against
603 an arbitrary set of patterns rather than the hostname, with
604 A new 'TLS Allowed CN' set of directives which are implemented
605 in the Client resource. Then pattern matching is used in place
606 of hostname matching against the Certificate's CN. As an example, we
607 have certificates which (a) use a local CA, and (b) have a CN of the
609 kes Add new/changed entry points to Win32 build
610 kes Create unaccepted-projects for projects that are not accepted.
611 kes Simplify locking in the reservations system.
612 kes Add more debug code in reservations.
613 kes Make sure error condition on reserving a volume is handled correctly.
614 kes Correct handling of volume_in_use.
615 kes Correct handling of initializing a device.
616 kes Move handling of broadcasting releasing a device into release_device().
617 kes Correct attaching dcr to dev so that it is only done if device
618 is properly initiated.
620 kes Locking debug level tweaks in SD.
621 kes Tweak new Volume code.
623 kes Add exec external-command [wait-seconds] to bconsole. This
624 executes the external-command. Note! normally external-command
625 should be enclosed in double quotes.
626 kes Turn the .die command on only if DEVELOPER is defined -- i.e.
627 it should normally be off in a production system.
629 kes Implement die command for SD so that we can force it to dump.
630 kes Implement SD lock debug code.
631 kes Implement new algorithm for keeping Volume list in SD. It
632 is now owned by the device.
634 kes Implement new code for freeing in use volumes that should
635 resolve if not all, some of the problems of multiple drive
636 tape conflicts described in bug 801.
638 kes Fix gui/bacula-web/images files in svn.
639 kes Turn on FreeBSD/OpenBSD code to set EOT model on tape.
641 ebl Fix a bug in batch mode (in string escape)
642 kes Correct migration prune SQL typo that crept in in a
645 kes Move bnet_despool() into class in bsock.c
646 kes Modify job report to include director name and Build OS.
647 kes Move drop root privilege and check_catalog() before fork.
648 kes Add update database scripts (version 9 to 10) to updatedb directory.
650 ebl Check size and age of each file after its backup to see if
651 it has changed during backup, if 'checkfilechanges' is set.
652 The FD will do an extra check (stat(2)) after
653 each file backup. mtime, ctime and size are compared with
654 'before backup' information. If time or size mismatch, an
655 error message will be generated. You must upgrade FD to use it.
657 kes Make database name and user configurable
658 --with-db-name=xxx --with-db-user=xxx
659 kes Add back database type to message.c for debugging.
661 kes Implement dir_sql() which issues an SQL query.
662 kes Modify bat medialist to use dir_sql() and do some minor C++
663 formatting as well as eliminating a number of pointers, simplifing
666 kes Fix some of the mtx-changer grep commands for tape label readers.
667 kes Convert a number of bsendmsg into the appropriate send/warning/error
669 kes Suppress the using database message in the .sql command.
670 kes Correct an incorrect bnet_tls_client prototype -- patch from Martin.
672 kes Add context menu for floating a window.
673 kes Some minor cleanup and name changes in qt-console
674 kes Add doing mt setblk 0 in Win32 mtx-changer.
675 kes Apply Martin's bug fix to move definition of ENODATA for
677 ebl Add a BUSY handler to sqlite to be able to use multi_db = 1 with
680 kes More pruning cleanup.
681 kes Turn on wait_for_drive by default in mtx-changer.
682 kes Turn on Batch insert code by default as it now passes regression.
683 kes Add ./configure --enable-bat to enable building of Bat.
684 No install yet though.
686 kes Implement a new .sql command for bat.
687 kes Implement code to turn off pruning in obtaining the next volume.
688 Pruning is turned off for the status dir command, but turned on
689 for SD requests and for the list nextvolume command.
691 kes Correct Qmsg() that was not updated correctly when committing a
692 previous change (probably the recent TLS patch).
694 kes Write new subroutine is_volume_purged() that explicitly checks
695 if the Volume is purged, and if so marks it as such. This should
696 resolve problems reported about needing to mount twice to recycle
698 kes Rewrite pruning algorithm to do more work in the SQL engine, and
699 to pass a list of JobIds to be deleted to SQL. Also, minimize the
700 amount of duplicated code.
701 kes Do volume pruning only for the Media Type desired (reduces pruning time
702 if multiple Media Types are in the same pool).
703 kes Implement more detailed info in the Job report for the Bacula version
705 kes Switch from POOLMEM to POOL_MEM (a real class) in ua_prune.c and
707 ebl Add bbatch tool to bench database and insert mode.
708 Fix sql quote stuff in batch mode
709 Fix sql stuff for mysql
711 kes Correct problems with am/pm scheduling. Fixes bug #808.
712 kes Implement new prunning code that prunes up to 1000 jobs at
713 the same time. The same technique can be applied to a number
714 of other prune/purge subroutines.
715 kes Add an insanity check when starting a new tape job to ensure
716 that the tape position has not been changed. If so fail the
718 kes Fix Win32 build for dlls to add the folllowing:
719 src/lib/bsock.c -- new file with new entry points
720 src/lib/dlist.c -- new entry points
721 src/cats/sql_create.c -- new entry point
722 src/cats/sql_cmds.c -- new DATA item exported
724 ebl batch mode cleanup bscan-test is ok now.
725 kes Implement SD code to check length of disk volume before appending.
727 kes Correct return status on db_batch... routines.
728 kes Add call to db_write_batch_file_records() to migration code.
729 ebl Fix AfterJob timing
730 kes Move the checking of the database in initializion of the Director
731 to after we drop privileges. This avoids the need for both root
732 and bacula access to the DB.
733 kes Correct a misplaced variable definition in src/filed/backup.c
734 kes Correct how the new batch insert db_create_attributes_record()
735 uses the arguments. Caused a seg fault in bscan.
736 kes Implement lock() and unlock() methods in DEVICE class.
737 Implement block() and set_block(xx) methods in DEVICE class.
738 kes Modify bnet_connect() so that it uses time() to check for the
739 wait time expiring (on some OSes, some system calls may not
741 kes Modify Verify to obtain the previous JobId when it is actually
742 running rather than at schedule time (as it was in 1.38.x).
743 kes Fix src/job.c to handle MaxWaitTime correctly. This should
745 kes When checking pid in pid file, continue running if the pid is
746 the same as ours. This occurs on IRIX after a system crash.
749 kes Extend new GUI API.
750 kes Make the ua structure a class, and implement send_msg(),
751 error_msg(), warning_msg(), and info_msg().
753 kes Apply fix from for building wx-console on the Mac from
755 kes Implement new select mechanism for GUI programs.
756 kes Reorganize initialization of stackedWidgets in bat.
758 kes Add updated nagios plugin supplied by Christian Masopust.
760 kes More bat implementation.
761 kes File migrate bug with Pool Occupancy using mediaid instead
762 of jobids. Fixes bug #795.
763 kes Fix orphaned buffers in filed backup and verify due to
764 crypto buffers not freed during errors. Fixes bug #789.
765 kes Extend new GUI api code to tree commands.
766 kes Ensure that tree and dot commands check console ACLs.
767 kes Permit marking directory with trailing slash.
768 kes Allow 20 console connections (instead of only 10).
770 kes Add smartctl call to bacula-sd.conf as an example of getting
773 kes Modify jobq.c to let simultaneous restore jobs run. This may
774 cause them to fail if they cannot get a drive.
775 kes Add Client Connect Wait to Storage daemon to permit users to
776 modify the time the SD waits for a FD connection.
778 kes Correct virtual changer check which was backwards. This caused
779 volumes to be unloaded into slots already occupied.
781 kes Apply Command ACL filter to JobId list in restore command.
782 kes Correct typeo in var.c patch.
784 kes Don't let Bacula prune File or Job records for the current Job.
785 kes Fix variable substitution pad + inc bug reported (with patch)
788 kes Correct SQLite log table index as reported by Luca Berra.
790 ebl fix fifo stuff, bacula tries to rewind the fifo... Thanks to Andreas
792 kes Begin implementing new comm signals for API.
793 kes Fix a few places in lib/message.c where the open fd may
795 kes Continue implementing lib/bsock.c (real class). Make jcr,
796 who, host, and port private. There are new methods to access
797 them for non-class use. This required touching a number of files.
799 kes Add LANG=C to autoconf/randpass so it works with languages other
800 than English. Fixes bug #788.
802 ebl Revert ClientRunBeforeJob to old position as in 1.38.X.
804 You will not be able to generate Include/Exclude list any more.
805 It will be fixed soon.
806 If you want to use this, you can apply
807 trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch
809 kes Restore of sockets created false error messages because Bacula
810 no longer restores sockets, but the code was still trying to
811 set the attributes on a non-existent file. Reported by a user.
812 ebl finish RecyclePool feature
813 Media will takes Pool.RecyclePool
814 when moving from Scratch to a Pool or when user will do
815 update volume=xxx frompool
816 To use it, add RecyclePool = aPool to your Pool resource
819 RecyclePool = Scratch
823 kes Expand new BSOCK class adding signal() and new BNET signals.
824 kes Begin enhancing the dot commands adding a new API function
825 that returns more information and will make it easier
826 to interface to the Director from a program.
828 kes Make DEVICE fd private. Its new name is m_fd, and can be
829 obtained with dev->fd() outside the class. This is the
830 first of many DEVICE members to be made private.
831 kes Implement Michael Renner's idea on having a virtual disk
832 changer. I made some minor modifications (e.g. I did not
833 implement the Virtual Changer directive, but simply set
834 the Changer Command to an empty string.
836 kes Implement a BSOCK send() method that writes the whole record
837 in a single write() request rather than in two.
838 ebl add update volume=xxx recyclepool=yyyy
839 volume takes recyclepool from pool when using update volume=xxx from pool
841 kes Fix encryption deblocking bug, which caused some restored files
842 to be truncated. This fixes bug #763.
843 kes Add FD event sequence order prepared by Eric -- for RunScripts.
844 kes Fix 12am/pm bug as reported in bug #782 -- scheduler problem.
846 kes Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1.
847 ebl Use btime_t instead of uint64_t in media patch.
849 kes Optimize the use of the database a bit in the Status dir command.
850 Only open it when needed, ensure that if any previous database
851 was opened, it is closed.
853 kes Correct VolCatBytes bug from media patch.
854 kes Apply patch from bug #612 by Rudolf Cejka to speedup pruning
855 in the case of orphaned records.
856 kes Modify dbcheck to handle orphaned JobMedia, Path, Filename,
857 and File records in 300K chunks to be more efficient. This
858 idea came from Juan Luis Frances (if I remember right).
859 kes Apply Eric's scratch patch that moves a purged Volume to
860 the RecyclePool. Question: how is RecyclePool set? what
861 happens to the ScratchPool?
862 kes Apply Eric's media patch that collects read/write media
863 times as well as byte counts. This patch requires a
864 simultaneous upgrade of the DIR and SD. Note, there
865 should be some way to turn off timing. I'm not sure
866 times are in Bacula units.
867 kes Apply Eric's batch-insert patch.
869 kes Update projects list.
871 kes Implement Include/Exclude file lists in FD as dlists using
872 the new dlistString class. This permits efficiently having
873 large include/exclude lists and completes project Item 25.
874 kes Fix dird/ua_cmds.c so that a cancel command checks if the
875 console is authorized to cancel the job. This fixes bug
877 kes Modify SD so that the VolCatJobs medium record is updated
878 at the beginning of a Job rather than the end. This
879 fixes bug #775 where exceeding MaxVolJobs caused jobs
881 kes Added a mutex around getting and setting Volume information
882 so that multiple simultaneous jobs will single thread.
884 Switch to using Subversion
885 kes Remove src/pygtk-console/ from configure
887 kes Delete src/lib/btree.c from win32 build, then add rblist.c
888 plus the entrypoints.
889 kes Apply patch supplied that corrects debug print
890 in canceling jobs for max run time. Supplied as
891 part of bug #621, which was previously fixed.
893 kes Test on job_canceled() and sd_msg_thread_done inside
894 loop starting the message thread to avoid a race condition.
896 kes Remove rl_catch_signal from console.c as it conflicted
897 with the header definition. Fixes bug #765.
898 ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive)
900 kes Clarify some stored/acquire messages to indicate if the
901 problem is with read or append.
903 kes Fix memory leak with storage ids in cats/sql_get.c
904 kes Terminate watchdog earlier to avoid reference to released
905 memory -- reported by Jason Austin.
906 kes Move closing the database from jobq.c to the director daemon
907 termination routine. This fixes memory leaks for shadow jobs
908 (i.e. migration jobs).
909 kes Free up the unique jobid chain items in migrate.c. This fixes
910 a memory leak problem.
911 kes Convert some ugly looking for statements to use foreach_alist
912 in findlib/find.c. This will facilitate converting the structures
913 to use dlist (for large include/exclude lists).
914 kes Fix a bug in the btree.c and btree.h routines, then rename them
915 rblist and add them to be built in src/lib. Include some new
916 methods written by Rudolf Cejka that make the code more readable
917 (hides some of the ugly casting).
918 kes Add set_next() and set_prev() methods which make the code much more
919 readable. Also add a new dlistString class that facilitates storing
920 strings in dlists. To be used in the large include/exclude lists.
921 kes Make some trivial modifications to lib/tree.h that use rblist
922 rather than dlist for storing the tree links. This was suggested
923 by Rudolf Cejka. The result of this is that the restore tree now
924 uses red-black binary trees rather than simple linked lists. This
925 should give rather dramatic speed improvements for directories
926 contining large numbers of directories/files (more than 10000).
928 kes Fix maxruntime bug #621.
930 ebl Implement the include JobID in spool file name project.
931 kes Reorder projects file in order determined by Jan 2007 vote.
932 kes Implement item #12 on project list -- quick release of FD by
934 kes Fix open of SQLite3 db where user does not have write permission
935 so that DIR does not crash. Fixes bug #761.
937 kes Add back missing @ in Win32 Makefile.
938 kes Change 'Device not configured to autolabel' from INFO
940 kes Fix jobq.c to restart failed jobs when Reschedule Times = 0
941 which should restart an indefinite # of times.
942 kes Fix configure --help to print --with-mysql[=DIR]. Same for
943 other DIR specifications.
945 rn Fix msvc build problems. Fix bacula.dll exports for msvc build.
946 Fix path quoting in SQLite scripts.
947 Fix problems with SHGetFolderPath.
949 kes Create patches/2.0.1-restart.patch. Fixes bug #755.
951 kes Fix Job restart on error bug that promotes an Inc to a Full
952 backup. This should fix bug #755.
953 kes Add qt-console and first cut of code.
957 kes Fix Bacula->Documentation link on Win32 to point to index.html
958 instead of bacula.html. Fixed bug #750.
959 kes Return JobId in db_get_job_record() when JobId==0. This should
961 kes Do not release source pointers when restarting a failed job.
963 kes Add dynamic dll entry point for SHGetFolderPath to Win32 code.
964 This *should* fix bug #747.
965 kes Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix
968 kes Modify USTORE constructor to set an empty store_source string,
969 and don't copy the store_source string in a cancel. Hopefully
970 this will fix Arno's seg fault, bug #744.
971 kes Add back code to disable conio in configure. Fixes bug #743.
972 kes Correct the Options scanner in the FD to correctly handle
973 SHA1 option, which was eating the next option. Reported by
975 kes Add code to indicate when the SD is spooling, spool wait, and
976 despooling as requested by Alan Brown.
978 Version 2.0.0 released: 4 January 2007