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