]> git.sur5r.net Git - bacula/bacula/blob - bacula/ReleaseNotes
- Add a kludge to detect bad date/times, which cause a seg fault in
[bacula/bacula] / bacula / ReleaseNotes
1
2           Release Notes for Bacula 1.35.8
3
4   Bacula code: Total files = 396 Total lines = 116,211 (*.h *.c *.in)
5
6
7 Changes for 1.35.8
8 Major Changes:
9 - Tray monitor program
10 - Bacula Rescue CDROM     
11 - Bacula CD Image Manager
12 - Lots of improvements in the Rescue scripts -- better 
13   network detection, better mounting code, ...
14 - General bug fixes/stabilization
15 - French translation of manual by Ludovic Strappazon well    
16   underway.
17 - UTF-8 is supported in conio (some minor cleanup is needed).
18 - Improved conf scanning code allowing FileSet components to
19   be put on a single line (previously everything had to be on
20   a different line).
21 - Win32 files restored to an alternate directory will have the
22   colon following the drive letter turned into a / e.g. c: 
23   becomes c/. Previously the c: was stripped. This applies only
24   to files written to an alternate directory (i.e. using a where=).
25 - Certain open files (Word for example) can now be saved on
26   Win32 systems.
27 - Default for Wild-cards on Win32 systems is to fold case this       
28   should correct most of the problems users are having with
29   exclusion on Win32.
30
31 New Directives:
32 - Added "Rerun Failed levels = yes/no" in the Job resource
33   of the Director. It will upgrade the current job to a 
34   higher level (Full or Differential) if a previous job
35   of that level failed.
36 - Added "Ignore FileSet Changes = yes/no" in the FileSet
37   directive of the Director. It prevents the Director from
38   immediately upgrading the job to a Full save if you modify
39   the contents of the FileSet. Not recommended. 
40 - Added "Block positioning = yes/no" in Device resource in SD.
41   If set to no, Bacula should (as yet untested) be able to
42   recover data from tapes where the drive was set to fixed
43   blocksize but Bacula is in variable block size.
44 - Added "Multiple connections = yes/no" in Catalog record for
45   allowing multiple simultaneous connections to the database.
46   This is a major performance improvement for PostgreSQL.
47
48 Items to note!!!
49 - As of 1.35.5 you MUST do a database update.
50   
51   cd scripts-dir (or src/cats)
52   ./update_bacula_tables
53    
54 - All daemons should be compatible with 1.34 with the exception
55   of the new FileSet features such as regular expressions.
56 - Regular expressions are not supported in the Win32 FD.
57
58 Other Items:
59 - See below
60
61 Changes to 1.35.5:
62 22Sep04
63 - Incremented the release number because this version requires
64   an update to the database.
65   Use:
66     cd src/cats
67     ./update_bacula_tables  
68   to update an existing database.
69 - Implemented EndFile and EndBlock in the Media record. This will
70   allow Bacula to know exactly when to stop reading a tape if the
71   stupid tape driver does not give a logical end of tape indication 
72   and Bacula writes to the end of the tape getting an I/O error.
73 - Added new routines to update the database, and there are
74   new database creation routines to add the two new Media columns.
75 - The Media record is updated each time a JobMedia record is created.
76   This keeps the Media record up to date.
77 - Undid the code to use automatic type converions to char * in
78   POOL_MEM. This is due to the ugly consequences of essentially
79   destroying the class type nature of the class.
80 - Removed all the old mp_char() #define code.
81
82 Changes to 1.35.4:
83 22Sep04
84 - Add additional doc.
85 - Implement automatic POOL_MEM type conversion to char *. Thanks
86   to Martin Simmons for the suggestion.
87 - Remove some unneeded function overloading -- need removed by
88   automatic type conversion.
89 21Sep04
90 - Correct segfault in message.c with debug=200 (new code).
91 - Fix bug 109 verify with no options prints garbage.
92 - Add ioctl(MTIOCGET) call to clrerror_dev() in dev.c. As reported
93   by Frank Kardel, this should clear error conditions on NetBSD.
94 20Sep04
95 - Modify the rescue script to create mount_drives with
96   the order specified by Philip Nash (mkdir, mount).
97 - Tweak install chapter of French manual to add new paragraph
98   from English.
99 - Tweak restore tree message to be a bit clearer.
100 - Modify watchdog to wakeup after 60 seconds, or wakeup if
101   there is work to do.
102 - Modify watchdog stop routine to "ping" watchdog so that it
103   stops immediately rather than after sleep time.
104 - Fix btape to use new dcr blocks rather than its own.
105 - Fix butil.c to correctly handle Volume names for the
106   utility routines (broke when updating to dcrs).
107 11-19Sep04 (vacation)
108 - Implement multiple Storage specifications in the Job resource
109   (AND) each containing multiple specifications (OR). Not yet functional.
110   Note, this needs more work as most things now use
111   job->storage[0]->first() rather than looping through devices.
112 - Implement "Multiple connections = yes/no" in Catalog record for
113   allowing multiple simultaneous connections to the database.
114 - Add new mac.c (Migrate, Archive, Copy) to dird -- not yet implemented.
115 - Implement a new POOL_MEM class that automatically allocates
116   and deallocates a pool buffer.
117 - Overload a number of utility routines to permit using both
118   POOLMEM and POOL_MEM.
119 - Start converting to using POOL_MEM.
120 - There were a number of Bacula console ACL checks missing in
121   ua_run.c. It allowed users to run jobs they really should not.
122 - Correct a number of dates on the Copyright.
123 - Overload pm_strcpy() and pm_strcat() to handle new POOL_MEM
124   class.
125 - Overload bash/unbash_spaces to handle new POOL_MEM class.
126 - Make a *MASSIVE* pass through the Storage daemon eliminating
127   all use of jcr->VolumeName and jcr->VolCatInfo in favor of
128   dcr->...  
129 - Eliminate all all redundant arguments from calling sequences
130   in SD. This poses a number of problems due to the old way blocks
131   and records were allocated and released all the time. They are
132   now contained in the dcr. The problem is that old habits die hard
133   and there are still places where everything is not right.
134 - Implement "Block positioning = yes/no" in Device resource in SD.
135
136 Changes to 1.35.3:
137 09Sep04
138 - Add "Multiple Connections = yes/no" in catalog record. Only
139   the variable is implemented, no code yet.
140 - Close *all* FD unless debug on. 
141 08Sep04
142 - Add first cut of UTF-8 support to conio. It "seems" to be working
143   pretty well. Moving by words will definitely not work though.
144 - Improve detection and setting of gateway in the 
145   network_start script.
146 07Sep04
147 - Modify scan code so that in most places scanning will
148   continue across the end of a line.
149 05Sep04
150 - Begin major phase of 1.35 documentation.
151 - All outstanding bugs are fixed.
152 - Implement changes and improvements to rescue scripts as
153   proposed by Gaurav.
154 05Sep04
155 - Add correction to Phil's previous patch.
156 - Send all queued messages in SD and FD prior to closing down    
157   the job.
158 - Send queued messages in Jobs before terminating the job 
159   so that the messages print before the job report.
160 - Add a destructor so that the Console ACLs are properly
161   freed.
162 04Sep04
163 - Implement isolinux boot disk.
164 - Integrate Phil Stracchino's code (thanks for Matt's help).
165   It permits lists and ranges of jobids on the delete as in:
166   delete job jobid=1,3,5,11-16
167 03Sep04
168 - Apply Mike Acar's suggestion when looking for the next volume
169   to check purged volumes for recycling before doing a purge.
170 - Make some improvements to CDROM disk.
171 - Take another crack at ignoring drive open() errors during
172   polling.
173 02Sep04
174 - Add eliminate orphaned job records; eliminate admin records,
175   and eliminate restore records to dbcheck.
176 - replace sprintf by bsnprintf() in dbcheck.
177 - Added scan target to makefile in rescue cd to print scsi
178   devices.
179 - Added argument to berrno::strerror() to pass errno.
180 - Cleaned up a few more old strerror() calls and eliminated a
181   few of the now unnecessary set_errno() calls.
182 - Fixed a bug in the polling code that prevented more than 100
183   label reads (insanity check disabled if polling).
184 - Ignore bad return from open_device() if polling.
185 - Short circuit code if fatal error return from read_label() in
186   mount.c
187 01Sep04
188 - Add index file to JobId field of File records for PostgreSQL.
189 - Correct several bugs in the job queue scheduler concerning   
190   rescheduled jobs: 1. The SD status was not cleared causing a
191   wrong status to be displayed by Dir after rescheduling. 2. All
192   rescheduled jobs became zombies because the jcr use_count was
193   not decremented properly.
194 - Make the Catalog resource required in Client records.
195 - Order the listing of where a file is (item 2 on the restore
196   menu) by StartTime.
197 - Clarify when a filename only and a full path + filename must
198   be entered in items 2 and 8 of the restore menu.
199 - Fix logic error in resolution of names on IPv4 systems.
200
201 Changes to 1.35.2 released 01Sep04:
202 30Aug04
203 - Inhibit printing of FileSet for a restore as it is misleading.
204 - Cleaned up a number of minor scripting problems with the CDROM
205   creation.
206 - Fixed a race condition causing a Director crash on termination,
207   if a large number of SIGHUPs were sent during a multiple concurrent
208   set of backups.
209 28Aug04
210 - Completed integration of Rescue CD scripts with Bacula source.
211 28Aug04
212 - Added Ignore FileSet Changes = yes
213 - Added more error checking to the spooling code.
214 24Aug04
215 - Applied a patch from Peter Eriksson that removes a dynamic stack
216   allocation (replaced by alloca) and fixes some const problems.
217 - Fixed a free() of a static variable in the new IP code bnet.c
218 - Got the new Bacula Rescue CDROM booting.
219 - Replaced a dynamic template by a simple store when using the
220   native C compiler.
221 - Reworked some of the block.c error handling.
222 - Changed a Dmsgx(000, to Dmsgx(100 in dev.c that was dumping
223   debug output on a user.
224 - Integrated patch from 1.34.6 block.c to 1.35
225 17Aug04
226 - Fix conio.c problem on Solaris.
227 - Add debug code to lock_jcr_chain().
228 - Lock jcr chain around less code.
229 - Implement call by reference for Mmsg() and pm_strxxx() to
230   simplify calls.
231 - New IP address specification is used as follows:
232     [sdaddresses|diraddresses|fdaddresses] = { [[ip|ipv4|ipv6] = { 
233            [[addr|port] = [^ ]+[\n;]+] }] }
234
235   so it could look for example like this:
236      SDaddresses  = { ip = {
237             addr = 1.2.3.4; port = 1205; }
238         ipv4 = {
239             addr = 1.2.3.4; port = http; }
240         ipv6 = {
241             addr = 1.2.3.4;
242             port = 1205;
243         }
244         ip = {
245             addr = 1.2.3.4
246             port = 1205
247         }
248         ip = {
249             addr = 1.2.3.4
250         }
251         ip = {
252             addr = 2001:220:222::2
253         }
254         ip = {
255             addr = bluedot.thun.net
256         }
257      }
258   as a consequence, you can now specify multiple IP addresses and
259   ports to be used. In the case of a server, it will listen on
260   all those that you specify. In the case of connecting to the server,
261   Bacula will attempt connecting to one at a time until it succeeds.
262   And, in a few other special cases, Bacula will use only the first
263   address specified.
264
265   The default port numbers are still the same and the services and hosts 
266   are also resolved by name. So now  you could use the real names for the 
267   port numbers.
268
269 Release 1.35.1 16 August 2004:
270 - Added Tape Alert feature (see Alert Command).
271 - New IPv6 code (untested)
272 - New way of specifying Addresses and Ports -- permits having
273   server listen on multiple ports.
274 - Regular expressions in Options directive.
275 - Reader/writer programs in Options (not yet fully implemented,
276   please do not use).
277 - Fixed specification of bind address on Win32 (thanks to     
278   Martin Simmons).
279 - Update all Volumes from Pool record.
280 - Update License to terminate rights of anyone suing a GPL licensor.
281 - Improved error messages for Win32 and when running external
282   programs (e.g. RunBeforeJob).
283 - Implement reload of conf file in Directory on SIGHUP.
284 - Building restore tree is much faster on large filesets
285   due to binary insert.
286 - Alert Command in Device resource of Storage Daemon.
287 - New IP address and port directives.
288 - reader = xxx, writer = yyy in Options within FileSet of
289   Director's conf file.
290 - regex = xxx in Options within FileSet of Director's
291   conf file.
292 - New command options: update AllFromPool updates all
293   Volumes with Pool defaults.
294 - .backups client=xxx (for GUI programs).
295 - A duration specification may have any number of integer/modificator
296   specifications. E.g.:
297   1 week 2 days 3 hours 10 mins
298   1 month 2 days 30 sec
299 - Print error message if Alert Command fails in bpipe_open().
300 - Doc Alert command.
301 - Eliminate unnecessary class in findlib/attribs.c
302 - Add necessary empty files to new tray-monitor directory.
303 - Implement Class with template in findlib/attribs.c to do casting
304   of uint64_t into stat packet types to avoid compiler warnings.
305   Thanks to Meno for this idea.
306 - Make some modifications to satisfy VC++.
307 - Apply Martin Simmons' second patch to compat.cpp to fix the line
308   I previously missed.
309 - Apply Meno's fix to bnet that corrects use of ipaddr after free_addresses,
310   back out my kludges, and it works.
311 - Modified configure.in to by default add -Wall.
312 - Found some problems with printing IP addresses -- will notify Meno.
313 - Added printing Pool to Job report.
314 - Fixed several places where dlists were not being released 
315   (term_job_server, ...)
316 - Started implementing New() for dlists. Spent a lot of time,
317   but could not get it to work.
318 - Fixed a mutex deadlock between the job queue scheduler and the
319   watchdog.
320 - Made add_address() static.
321 - Added bsnprintf to address_conf.c
322 - Apply Marin Simmons patch to inet_aton() in compat.
323 - Build on Win32 -- required a few changes because of new IP code.
324 - Implement program reader code in Dir and FD -- not tested, and
325   a few corrections for writer code are needed in FD.
326 - Rework SQL for pruning. Add Admin pruning. Prune failed
327   jobs in Verify and Restore.
328 - Don't put commas in listing produced in restore so that users
329   can cut and past JobIds without having commas in the way.
330 - Change size_t to socklen_t in filed.c -- reindent a bit.
331 - Remove addr_list->size from buf size definition in bnet.c
332 - Create a Developer's document.
333 - Add prompt for Update volume from pool and update all 
334   Volumes from pool.
335 - Implement user friendly time duration input editing.
336 - Add buf len argument to edit_utime().
337 - Added eliminate orphaned Client records to dbcheck.
338 - Implement Alert Command in SD Device conf. 
339 - Fix updating a Volume from the pool record -- it never changed
340   anything.
341 - Implement updating all Volumes from pool record.
342 - Add patch by Denis Shaposhnikov that fixes excludes of directories
343   in new style FileSets.
344 - Merge Meno's IPv6-1 code.
345 - Update License to terminate rights of anyone suing a GPL licensor.
346 - Add Pruning doc sent by Bryce Denney
347 - Correct inconsistencies in restore command doc pointed out by user.
348 - Don't edit commas in SQL intergers if they are not stricly integer.
349 - Update all pools in all DBs when starting the Director.
350 - Implement final cut of berrno and update Win32 code.
351 - Update copyright to include a termination clause. Add copyright to
352   binaries.
353 - Implement .backups client=xxx for Nicolas.
354 - Make first cut at implementing berrno class to handle Unix, Win32
355   and bpipe errors. Bpipe still needs to be implemented.
356   This fixes (not yet tested) the Win32 errno problems in the compat lib.
357 - Fix btape compile problem reported by Martin Simmons -- thanks.
358 - Add ./configure detection of sys/tape.h
359 - Apply two fixes to recent changes to dev.c submitted by
360   Martin Simmons.
361 - Add checks in btape for correct size of off_t, and correct editing
362   of 32 and 64 bit values.
363 - Move supported OS/hardware into a chapter by itself.
364 - Fix bscan, which did not handle walking dcr list.
365 - Remove old attach_jcr_to_device() code.
366 - Fix config from Andy Wettstein's patch to use bitypes.h and detect
367   uint32_t, ... definitions.
368 - Fix a few compiler warnings because of casting pointers to int and
369   vise versa.
370 - Do some minor cosmetics to query.sql. nothing changed.
371 - Don't call stop_thread_timer() in backup.c if timer not started.
372 - Fix bug with out of order JobIds on restore.
373 - Make watchdog examine queues once every 10 seconds instead of once
374   a second.
375 - Add more bools to dev.c
376 - Fix walking attached DCRs in bscan.c
377 - Doc updates
378 - Start work on rescue files. Integrated RAID changes. 
379 - Print a message when query.sql moved to query.sql.old during install.
380 - Move setting of FreeBSD chflags() to after utime() to avoid error
381   messages is immutable bit is set.
382 - Turn off heartbeat in FD when -s is given so that we can 
383   debug without a flood of signals.
384 - Close and reopen the device during an append test in
385   btape. This better tests appending as if Bacula stops/restarts.
386 - Remove old attach/detach_jcr_to_device() code
387 - Add new attached_dcrs code.
388 - Remove unnecessary subroutine for bsnprintf.
389 - Replace sprintf() by home-grown code in edit_uint64 ...
390 - Begin implementation of dev->attached_dcrs. 
391 - Remove scripts/fd.in from configure.in
392 - Add printing of JobId when a Job is started from the console.
393 - Remove fd/fd.in from scripts directory.
394 - Fix a number of bugs in dbcheck concerning the -c option
395   (i.e. with a config file).
396 - Made RH start scripts use -u and -g options.
397 - Many more DCR changes.
398 - Add job message indicating that the job has been rescheduled
399   and when.
400 - Fix job end time so that it is always updated. Previously it
401   was not updated when a job was rescheduled.
402 - Correct SQL for restoring job by path/name. It could sometimes
403   pickup the wrong JobId -- submitted by a user.
404 - Add a number of "%s" in editing database errors -- security issue.
405 - Ensure that the NumVols is incremented and decremented in the
406   pool record when Volumes are created or deleted.
407 - Cleanup error handling when labeling a tape. If vol was read-only,
408   the device would still be marked as having found a label.
409 - Put ftCreationTime into st_ctime of stat packet. Hopefully
410   this will fix the problem of noticing files have been moved
411   into the save path after a Full save.
412 - Fix bug in "status dir" where not all entries are listed.
413 - Cleanup some improper result printing in configure.
414 - Optimize a couple of insertions in binary_insert of dlists.
415
416 Release 1.35.0 08 July 2004:
417 - Apply Christopher Hull's const patch for PostgreSQL
418 - Add code to block.c to detect if block header is destroyed.
419 - Add debug code for memset checking for zeroing 1900-3000 bytes
420   which is what happened to the block headers.
421 - If block header is destroyed, read the next block. Probably
422   should return with new status similar to the SHORT block 
423   return.
424 - Add more debug info to bls for bad blocks.
425 - More implementation of DCRs.
426 - Eliminate argument passing in SD by using dcr.
427 - More int->bool conversions.
428 - Add file:block to a number of read/write error messages.
429 - More int -> bool conversions.
430 - Modify the SD piece by piece to use DCRs everywhere.
431 - Cleanup some printout for query command. 
432 - Fix typo in cats/mysql.c
433 - Work on cleaning up tape driver a bit (use bools, better calling
434   sequences).
435 - Attempt to fix multi-Volume disk backup. Needs to be tested.
436 - Add Regular expressions to FileSet options.
437 - Correct configure.in to use ${MAKE} for doing the dependencies.
438 - Make MySQL and PostgreSQL try for 30 seconds to connect before
439   giving up.  
440 - Correct Gnome 1.4 Makefile to build without cats library.
441 - Correct a crash reported (with patch) by Jonathan Soong 
442   when attempting to backup an ACL on a symlinked file.
443 - Fixed an off by one bug in the new resources pointer code.      
444   res_head array was one too small.
445 - Added Errors to last_job list. This allows detecting jobs
446   that terminated in a warning.
447 - Implement setting the Win32 icon to yellow instead of red
448   when the job terminated OK but with warnings.
449 - Fix the Win32 makefile and VC project file. The links were
450   not including the Win32 dlls.      
451 - Delete some old Win32 code that was turned off.
452 - Eliminate a few more Win32 compiler warnings.
453 - Reduce the output produced by NIS (Win32 install builder).
454 - Simplify some of the #ifdefing in compat.h
455 - Rewrite spooling error handling when I/O error occurs. It is
456   a bit tricky, requiring to truncate the file so that a despooling
457   will work correctly. Needs to be tested.
458 - Make better subroutines for setting up for a new job.
459 - Start putting all DB ids on #defines (going to 64 bits).
460 - Fix gnome-console Makefile.in to work again.
461 - All "level=Incremental/Decremental" to the estimate command. This
462   required some re-arrangement of subroutines at a fairly low level.
463 - Apply Piotr Jaworski's patch (patch-r-status.diff) to update the
464   catalog status when a backup job starts running.
465 - Add (char*) cast to readline call in console.c for old readlines.
466 - Copy Makefile.in from gnome2-console to gnome-console (to eliminate
467   need for cats library).
468 - Modify spooling code to handle write error (e.g. spooling disk full)
469   more gracefully. Previously despooling would fail.
470 - Reduce casting in smartall.c a bit and add counters for 
471   bytes, max_bytes, buffers and max_buffers.
472 - Fixed reload algorithm to stack both job end callback and the
473   table id.
474 - Fixed the orphaned buffer after reload (job_end_push had to be
475   destroyed.
476 - Destroy cond var (jcr->term_wait) only if initialized.
477 - Sort the Scheduled Jobs list by start-time, priority.
478 - Implement resources on a pointer.
479 - Fix Gnome console crash on up/down arrow with no history.
480 - Finish first cut of SIGHUP code. To make really work need res
481   on a single pointer rather than in fixed memory.
482 - Fix a number of places in query.sql where multiple JobIds are
483   printed (due to JobMedia records).
484 - Add new query: List jobs on Volume given Volume name.   
485 - Correct socket close on Win32 in bnet.c (in addition to compat.cpp).
486   Caused fd leak in Win32 for each connection.
487 - Remove vol labeled test in askdir update_volume_info so that non-labeled
488   Volume in catalog can be marked in error.
489 - Close socket in SD when connection rejected. Caused fd leaks.
490 - Initialize job_start_wait cond variable after every new_jcr() otherwise
491   NetBSD gets error in library when trying to delete it without being inited.
492 - Fix typo (9 instead of 0) return status in write_new_volume_label.
493 - Fix mount.c to call routine that correctly marks a volume in error.
494 - Move code to rewrite volume label to subroutine -- a bit cleaner.
495 - Finish implementation and testing of new restore tree code.
496 - Implement feedback while tree is loading.
497 - Eliminate printing INFO message in UpdateDB (cats) -- it generates
498   "false" error messages.
499 - Eliminate some GTK error messages when running the Gnome2 console.
500 - Begin restructuring tree.c for inclusion of the binary_insert()
501   routine.         
502 - Apply Peter Eriksson's lib file order changes in linking for IRIX.
503 - Abort configure if Internal is  selected as the database.
504 - Add testimonials to the Web page
505 - Add the bugs list to the Web page "lists".
506 - Clarify the English in SuSE and Slackware when SD not running.
507 - Applied another extern "C" patch from Peter Eriksson.
508 - Fixed a bunch of VC warning messages.
509 - Applied the patches sent by Andreas Jellinghaus: build Gnome and  
510   wx-console in client-only build if configured; add ./configure option
511   to permit setting of sbin modes -- default is 0745 as before; remove
512   cats library from Gnome console build; remove old version from Gnome
513   About box. Thanks Andreas.
514 - Applied Peter Eriksson's const changes to the source code. Thanks Peter.
515 - Implemented a binary_insert() method for dlists -- intended to be used
516   in the restore tree routines.
517 - Turned on my bsscanf() code, which replaces sscanf() by my routines, which
518   are a subset of sscanf() used by Bacula, but which have known 32/64 bit
519   behavior rather than vendor dependent !@#$%*.