1 Technical notes on version 2.1
5 ebl Cleanup file relocation, using char *RegexWhere instead of
6 char *where + bool where_use_regexp
7 kes Update some manpages and add bat manpage.
8 kes Make a first cut at converting bacula.spec.in for bwx-console
10 kes Apply patch from John Goerzen to add hostname as fourth argument
11 to make_catalog_backup script.
12 kes Fix typos I introduced into bsmtp.c
13 kes Make pm_strxxx() routines handle input of NULL pointer. This
14 is to protect from NULL pointers returned from SQL databases.
15 kes Correct typo in bacula-sd manpage as pointed out by John Goerzen.
16 kes Add more debug to FIFO code -- fix fifo regression test.
18 kes Implement posix_fadvise in FD, and for reading spool files in SD.
19 kes Add thread timer to bnet_connect() to break from OS if wait time
22 kes Update Win32 build to include new files, new symbols, and
24 kes Implement socket level heartbeat (tcp_keepidle)
25 ebl Commit File relocation patch
26 kes Make bat have 'make install' target.
27 kes Warn during install if old gnome-console binary found.
28 kes Warn during install if old wx-console binary found.
29 kes Add -8 option to bsmtp command line to add content type utf-8.
30 Fixes bug #809. (Character coding problem in bsmtp).
31 kes If < is found in target (from, to, cc) then do not enclose the
32 target in < > in bsmtp. Fixes bug #772 (malformed address).
33 kes When printing certain items in dbcheck, stop after 300000.
34 Fixes bug #822. (dbcheck loops).
35 kes Incorrect status in Dir after waiting for mount with poll set.
38 kes Extend idea of Prefer Mounted Volumes to mean a volume about
40 kes Print waiting to reserve a device every 5 mins.
42 kes Don't call close_part in label.c if tape and relabel.
43 kes Don't free volume if busy in close() -- should help with
45 ebl Fix #824 RunScript bug (After script could be execute twice)
46 Now, Before Script can use RunsOnSuccess and RunsOnFailure options
47 By default (like before) RunsOnSuccess=true and RunsOnFailure=false
48 Add a regression script to test RunScript
50 kes Correct usage of MTIOCLRERR ioctl for clearing persistant errors
53 kes The bgnome-console (gnome-console) and bwx-console (wx-console) are
54 deprecated. No additional bugs will be fixed, and they will be dropped
55 in a future release (probably 2.4.0).
56 kes Change name of wx-console to bwx-console to make it more Bacula
58 kes Change the name of gnome-console to bgnome-console to make it
61 kes Some time in March, a Feature Request with patch from Jorj Bauer
62 <jorj@seas.upenn.edu> was committed by Landon (with my approval).
64 The ability for the director to validate a Client (FD) CN against
65 an arbitrary set of patterns rather than the hostname, with
66 A new 'TLS Allowed CN' set of directives which are implemented
67 in the Client resource. Then pattern matching is used in place
68 of hostname matching against the Certificate's CN. As an example, we
69 have certificates which (a) use a local CA, and (b) have a CN of the
71 kes Add new/changed entry points to Win32 build
72 kes Create unaccepted-projects for projects that are not accepted.
73 kes Simplify locking in the reservations system.
74 kes Add more debug code in reservations.
75 kes Make sure error condition on reserving a volume is handled correctly.
76 kes Correct handling of volume_in_use.
77 kes Correct handling of initializing a device.
78 kes Move handling of broadcasting releasing a device into release_device().
79 kes Correct attaching dcr to dev so that it is only done if device
80 is properly initiated.
82 kes Locking debug level tweaks in SD.
83 kes Tweak new Volume code.
85 kes Add exec external-command [wait-seconds] to bconsole. This
86 executes the external-command. Note! normally external-command
87 should be enclosed in double quotes.
88 kes Turn the .die command on only if DEVELOPER is defined -- i.e.
89 it should normally be off in a production system.
91 kes Implement die command for SD so that we can force it to dump.
92 kes Implement SD lock debug code.
93 kes Implement new algorithm for keeping Volume list in SD. It
94 is now owned by the device.
96 kes Implement new code for freeing in use volumes that should
97 resolve if not all, some of the problems of multiple drive
98 tape conflicts described in bug 801.
100 kes Fix gui/bacula-web/images files in svn.
101 kes Turn on FreeBSD/OpenBSD code to set EOT model on tape.
103 ebl Fix a bug in batch mode (in string escape)
104 kes Correct migration prune SQL typo that crept in in a
107 kes Move bnet_despool() into class in bsock.c
108 kes Modify job report to include director name and Build OS.
109 kes Move drop and check_catalog() before fork.
110 kes Add update database scripts (version 9 to 10) to updatedb directory.
112 ebl Check size and age of each file after its backup to see if
113 it has changed during backup, if 'checkfilechanges' is set.
114 The FD will do an extra check (stat(2)) after
115 each file backup. mtime, ctime and size are compared with
116 'before backup' information. If time or size mismatch, an
117 error message will be generated. You must upgrade FD to use it.
119 kes Make database name and user configurable
120 --with-db-name=xxx --with-db-user=xxx
121 kes Add back database type to message.c for debugging.
123 kes Implement dir_sql() which issues an SQL query.
124 kes Modify bat medialist to use dir_sql() and do some minor C++
125 formatting as well as eliminating a number of pointers, simplifing
128 kes Fix some of the mtx-changer grep commands for tape label readers.
129 kes Convert a number of bsendmsg into the appropriate send/warning/error
131 kes Suppress the using database message in the .sql command.
132 kes Correct an incorrect bnet_tls_client prototype -- patch from Martin.
134 kes Add context menu for floating a window.
135 kes Some minor cleanup and name changes in qt-console
136 kes Add doing mt setblk 0 in Win32 mtx-changer.
137 kes Apply Martin's bug fix to move definition of ENODATA for
139 ebl Add a BUSY handler to sqlite to be able to use multi_db = 1 with
142 kes More pruning cleanup.
143 kes Turn on wait_for_drive by default in mtx-changer.
144 kes Turn on Batch insert code by default as it now passes regression.
145 kes Add ./configure --enable-bat to enable building of Bat.
146 No install yet though.
148 kes Implement a new .sql command for bat.
149 kes Implement code to turn off pruning in obtaining the next volume.
150 Pruning is turned off for the status dir command, but turned on
151 for SD requests and for the list nextvolume command.
153 kes Correct Qmsg() that was not updated correctly when committing a
154 previous change (probably the recent TLS patch).
156 kes Write new subroutine is_volume_purged() that explicitly checks
157 if the Volume is purged, and if so marks it as such. This should
158 resolve problems reported about needing to mount twice to recycle
160 kes Rewrite pruning algorithm to do more work in the SQL engine, and
161 to pass a list of JobIds to be deleted to SQL. Also, minimize the
162 amount of duplicated code.
163 kes Do volume pruning only for the Media Type desired (reduces pruning time
164 if multiple Media Types are in the same pool).
165 kes Implement more detailed info in the Job report for the Bacula version
167 kes Switch from POOLMEM to POOL_MEM (a real class) in ua_prune.c and
169 ebl Add bbatch tool to bench database and insert mode.
170 Fix sql quote stuff in batch mode
171 Fix sql stuff for mysql
173 kes Correct problems with am/pm scheduling. Fixes bug #808.
174 kes Implement new prunning code that prunes up to 1000 jobs at
175 the same time. The same technique can be applied to a number
176 of other prune/purge subroutines.
177 kes Add an insanity check when starting a new tape job to ensure
178 that the tape position has not been changed. If so fail the
180 kes Fix Win32 build for dlls to add the folllowing:
181 src/lib/bsock.c -- new file with new entry points
182 src/lib/dlist.c -- new entry points
183 src/cats/sql_create.c -- new entry point
184 src/cats/sql_cmds.c -- new DATA item exported
186 ebl batch mode cleanup bscan-test is ok now.
187 kes Implement SD code to check length of disk volume before appending.
189 kes Correct return status on db_batch... routines.
190 kes Add call to db_write_batch_file_records() to migration code.
191 ebl Fix AfterJob timing
192 kes Move the checking of the database in initializion of the Director
193 to after we drop privileges. This avoids the need for both root
194 and bacula access to the DB.
195 kes Correct a misplaced variable definition in src/filed/backup.c
196 kes Correct how the new batch insert db_create_attributes_record()
197 uses the arguments. Caused a seg fault in bscan.
198 kes Implement lock() and unlock() methods in DEVICE class.
199 Implement block() and set_block(xx) methods in DEVICE class.
200 kes Modify bnet_connect() so that it uses time() to check for the
201 wait time expiring (on some OSes, some system calls may not
203 kes Modify Verify to obtain the previous JobId when it is actually
204 running rather than at schedule time (as it was in 1.38.x).
205 kes Fix src/job.c to handle MaxWaitTime correctly. This should
207 kes When checking pid in pid file, continue running if the pid is
208 the same as ours. This occurs on IRIX after a system crash.
211 kes Extend new GUI API.
212 kes Make the ua structure a class, and implement send_msg(),
213 error_msg(), warning_msg(), and info_msg().
215 kes Apply fix from for building wx-console on the Mac from
217 kes Implement new select mechanism for GUI programs.
218 kes Reorganize initialization of stackedWidgets in bat.
220 kes Add updated nagios plugin supplied by Christian Masopust.
222 kes More bat implementation.
223 kes File migrate bug with Pool Occupancy using mediaid instead
224 of jobids. Fixes bug #795.
225 kes Fix orphaned buffers in filed backup and verify due to
226 crypto buffers not freed during errors. Fixes bug #789.
227 kes Extend new GUI api code to tree commands.
228 kes Ensure that tree and dot commands check console ACLs.
229 kes Permit marking directory with trailing slash.
230 kes Allow 20 console connections (instead of only 10).
232 kes Add smartctl call to bacula-sd.conf as an example of getting
235 kes Modify jobq.c to let simultaneous restore jobs run. This may
236 cause them to fail if they cannot get a drive.
237 kes Add Client Connect Wait to Storage daemon to permit users to
238 modify the time the SD waits for a FD connection.
240 kes Correct virtual changer check which was backwards. This caused
241 volumes to be unloaded into slots already occupied.
243 kes Apply Command ACL filter to JobId list in restore command.
244 kes Correct typeo in var.c patch.
246 kes Don't let Bacula prune File or Job records for the current Job.
247 kes Fix variable substitution pad + inc bug reported (with patch)
250 kes Correct SQLite log table index as reported by Luca Berra.
252 ebl fix fifo stuff, bacula tries to rewind the fifo... Thanks to Andreas
254 kes Begin implementing new comm signals for API.
255 kes Fix a few places in lib/message.c where the open fd may
257 kes Continue implementing lib/bsock.c (real class). Make jcr,
258 who, host, and port private. There are new methods to access
259 them for non-class use. This required touching a number of files.
261 kes Add LANG=C to autoconf/randpass so it works with languages other
262 than English. Fixes bug #788.
264 ebl Revert ClientRunBeforeJob to old position as in 1.38.X.
266 You will not be able to generate Include/Exclude list any more.
267 It will be fixed soon.
268 If you want to use this, you can apply
269 trunk/bacula/patches/testing/clientrunbeforejob_can_generate_include_exclude_list.patch
271 kes Restore of sockets created false error messages because Bacula
272 no longer restores sockets, but the code was still trying to
273 set the attributes on a non-existent file. Reported by a user.
274 ebl finish RecyclePool feature
275 Media will takes Pool.RecyclePool
276 when moving from Scratch to a Pool or when user will do
277 update volume=xxx frompool
278 To use it, add RecyclePool = aPool to your Pool resource
281 RecyclePool = Scratch
285 kes Expand new BSOCK class adding signal() and new BNET signals.
286 kes Begin enhancing the dot commands adding a new API function
287 that returns more information and will make it easier
288 to interface to the Director from a program.
290 kes Make DEVICE fd private. Its new name is m_fd, and can be
291 obtained with dev->fd() outside the class. This is the
292 first of many DEVICE members to be made private.
293 kes Implement Michael Renner's idea on having a virtual disk
294 changer. I made some minor modifications (e.g. I did not
295 implement the Virtual Changer directive, but simply set
296 the Changer Command to an empty string.
298 kes Implement a BSOCK send() method that writes the whole record
299 in a single write() request rather than in two.
300 ebl add update volume=xxx recyclepool=yyyy
301 volume takes recyclepool from pool when using update volume=xxx from pool
303 kes Fix encryption deblocking bug, which caused some restored files
304 to be truncated. This fixes bug #763.
305 kes Add FD event sequence order prepared by Eric -- for RunScripts.
306 kes Fix 12am/pm bug as reported in bug #782.
308 kes Apply Eric's ClientRunScriptAfter patch to 2.0 and 2.1.
309 ebl Use btime_t instead of uint64_t in media patch.
311 kes Optimize the use of the database a bit in the Status dir command.
312 Only open it when needed, ensure that if any previous database
313 was opened, it is closed.
315 kes Correct VolCatBytes bug from media patch.
316 kes Apply patch from bug #612 by Rudolf Cejka to speedup pruning
317 in the case of orphaned records.
318 kes Modify dbcheck to handle orphaned JobMedia, Path, Filename,
319 and File records in 300K chunks to be more efficient. This
320 idea came from Juan Luis Frances (if I remember right).
321 kes Apply Eric's scratch patch that moves a purged Volume to
322 the RecyclePool. Question: how is RecyclePool set? what
323 happens to the ScratchPool?
324 kes Apply Eric's media patch that collects read/write media
325 times as well as byte counts. This patch requires a
326 simultaneous upgrade of the DIR and SD. Note, there
327 should be some way to turn off timing. I'm not sure
328 times are in Bacula units.
329 kes Apply Eric's batch-insert patch.
331 kes Update projects list.
333 kes Implement Include/Exclude file lists in FD as dlists using
334 the new dlistString class. This permits efficiently having
335 large include/exclude lists and completes project Item 25.
336 kes Fix dird/ua_cmds.c so that a cancel command checks if the
337 console is authorized to cancel the job. This fixes bug
339 kes Modify SD so that the VolCatJobs medium record is updated
340 at the beginning of a Job rather than the end. This
341 fixes bug #775 where exceeding MaxVolJobs caused jobs
343 kes Added a mutex around getting and setting Volume information
344 so that multiple simultaneous jobs will single thread.
346 Switch to using Subversion
347 kes Remove src/pygtk-console/ from configure
349 kes Delete src/lib/btree.c from win32 build, then add rblist.c
350 plus the entrypoints.
351 kes Apply patch supplied that corrects debug print
352 in canceling jobs for max run time. Supplied as
353 part of bug #621, which was previously fixed.
355 kes Test on job_canceled() and sd_msg_thread_done inside
356 loop starting the message thread to avoid a race condition.
358 kes Remove rl_catch_signal from console.c as it conflicted
359 with the header definition. Fixes bug #765.
360 ebl Fixes bug #766 about RunsOnClient = Yes (case sensitive)
362 kes Clarify some stored/acquire messages to indicate if the
363 problem is with read or append.
365 kes Fix memory leak with storage ids in cats/sql_get.c
366 kes Terminate watchdog earlier to avoid reference to released
367 memory -- reported by Jason Austin.
368 kes Move closing the database from jobq.c to the director daemon
369 termination routine. This fixes memory leaks for shadow jobs
370 (i.e. migration jobs).
371 kes Free up the unique jobid chain items in migrate.c. This fixes
372 a memory leak problem.
373 kes Convert some ugly looking for statements to use foreach_alist
374 in findlib/find.c. This will facilitate converting the structures
375 to use dlist (for large include/exclude lists).
376 kes Fix a bug in the btree.c and btree.h routines, then rename them
377 rblist and add them to be built in src/lib. Include some new
378 methods written by Rudolf Cejka that make the code more readable
379 (hides some of the ugly casting).
380 kes Add set_next() and set_prev() methods which make the code much more
381 readable. Also add a new dlistString class that facilitates storing
382 strings in dlists. To be used in the large include/exclude lists.
383 kes Make some trivial modifications to lib/tree.h that use rblist
384 rather than dlist for storing the tree links. This was suggested
385 by Rudolf Cejka. The result of this is that the restore tree now
386 uses red-black binary trees rather than simple linked lists. This
387 should give rather dramatic speed improvements for directories
388 contining large numbers of directories/files (more than 10000).
390 kes Fix maxruntime bug #621.
392 ebl Implement the include JobID in spool file name project.
393 kes Reorder projects file in order determined by Jan 2007 vote.
394 kes Implement item #12 on project list -- quick release of FD by
396 kes Fix open of SQLite3 db where user does not have write permission
397 so that DIR does not crash. Fixes bug #761.
399 kes Add back missing @ in Win32 Makefile.
400 kes Change 'Device not configured to autolabel' from INFO
402 kes Fix jobq.c to restart failed jobs when Reschedule Times = 0
403 which should restart an indefinite # of times.
404 kes Fix configure --help to print --with-mysql[=DIR]. Same for
405 other DIR specifications.
407 rn Fix msvc build problems. Fix bacula.dll exports for msvc build.
408 Fix path quoting in SQLite scripts.
409 Fix problems with SHGetFolderPath.
411 kes Create patches/2.0.1-restart.patch. Fixes bug #755.
413 kes Fix Job restart on error bug that promotes an Inc to a Full
414 backup. This should fix bug #755.
415 kes Add qt-console and first cut of code.
419 kes Fix Bacula->Documentation link on Win32 to point to index.html
420 instead of bacula.html. Fixed bug #750.
421 kes Return JobId in db_get_job_record() when JobId==0. This should
423 kes Do not release source pointers when restarting a failed job.
425 kes Add dynamic dll entry point for SHGetFolderPath to Win32 code.
426 This *should* fix bug #747.
427 kes Modify winbacula.nsi to substitute with g bin_dir_cmd. Should fix
430 kes Modify USTORE constructor to set an empty store_source string,
431 and don't copy the store_source string in a cancel. Hopefully
432 this will fix Arno's seg fault, bug #744.
433 kes Add back code to disable conio in configure. Fixes bug #743.
434 kes Correct the Options scanner in the FD to correctly handle
435 SHA1 option, which was eating the next option. Reported by
437 kes Add code to indicate when the SD is spooling, spool wait, and
438 despooling as requested by Alan Brown.
440 Version 2.0.0 released: 4 January 2007