              Technical notes on version 1.29 22Jan03
                     23 January 2003
                       Kern Sibbald

General:

Changes submitted this submission:
23Jan03
- Tightened up permissions on all .conf files to be 640 so they are not
  world readable.
22Jan03
- Added prefixlinks=yes/no Job record to specify applying the Where
  prefix to absolute soft links.  Code is not yet passed to FD, because
  FD would then be incompatible with version 1.28.
- Added skeleton of installation for Gentoo release for Patrick Naubert.
- Add timer on open() for reading or writing a FIFO file.
- Put btraceback and btraceback.gdb in sysbin dir (a bit of polution,
  but at least dumps will work).
20Jan03
- Added "append" all messages to a log to default bacula-dir.conf
- Added WriteBootstrap to default bacula-dir.conf
- Made smartall.c print "Out of memory" if malloc() fails.
- Added pthread btimer routines.
- Added timer to FIFO open statement
- George was still having problems with VolUseDuration failing.
  On looking into it, one line of code subtracting 1900 was
  mysteriously missing from the source -- bizarre.
18Jan03
- Yesterday's version corrects all the problems I was
  previously having, and my production jobs are now completing
  properly.
- Added a #define dev_cap() to test the capabilities bits. I just
  makes the code a bit shorter and a bit simpler.
- Added phase 1 support for an output fifo device. The big 
  difference here is that it is a STREAM device, which means that
  Bacula will only write to it and not read. Thus, Bacula assumes
  that the correct "Volume" is mounted and will construct a valid
  label (without needing the Volume to be prelabeled), and write
  to the device.
- Added phas 1 support for input from fifo device (suppress re-read,
  add empty buffer flag).
17Jan03
- Improve printout of dbcheck with # files/path fixing.
- Zap SD authorization code after use.
- Added <> back to smtp (think about this some)
- Doc
16Jan03
- Massive change to add jcr as the first argument to nearly
  every db_ call. This is because I was storing the jcr in the
  db structure, which will not work because everyone shares
  exactly the same structure.
- More cleanups of error termination status in filed.
- Found another bug in message.c where %s was missing in JmsgN. A lot
  of cleanup in message.c
- Found places where filename listing was made (restore, verify
  vol) where the buffer could possibly overrun.
- Chain include files on the end of the list so that the
  order will be correct.
- Rewrote mtx-changer to output one slot per line terminated by
  a colon followed by an optional Volume Tag for the "list" command.
  Preparation for handling Volume Tags.
- My production crash remains elusive. Adding debug code or running
  under the debugger eliminates the problem. I found a case in
  message.c where I was extending the message string by two 
  characters to send it to the console. VERY BAD. Rewritten.
- Started implementing fifo and program handlers (i.e. streams)
  in the Storage daemon. Lots to do.
- Added a trace capability where trace statements are written
  to a file. Tmsg(). Hopefully this won't be used much.
- Running lots of "production" saved by scheduling a few minutes
  after the current time -- slow process ...
15Jan03
- Removed <> on From and To in smtp.c as suggested by James MacLean.
- Added code to suppress spurious error messages during cancel,
  but I was unable to eliminate all errors -- to be worked
  on later.
- Up size of print buffer from 2000 to 5000.
- My production run failed again. I'm beginnig to suspect 
  hardware problems because running by hand or under the
  debugger always works -- we will see.
- Added Update Volume VolFiles to reset correct tape files 
  a bit dangerous.
- Use the mysql_escape_string() rather than internal version.
14Jan03
- Cleanup handling of JobStatus by creating a subroutine.
- Fix a number of minor things with JobStatus.
- Print FD and SD JobStatus on backup report.
- Add JCR to findlib -- so now FD stops normally when cancelled.
- My production Director segment faulted during the second Job.
  I haven't been able to track it down. After rebuilding, all
  jobs finished correctly.
- In investigating the duplicated Paths, I found that there
  were 10,552 of them -- only Path records. After checking the
  code, I do not see the reason, but I've enhanced the code to
  print the full path name.
- I made a few improvements to tools/dbcheck. Mostly it provides
  a bit more feedback with verbose mode on when eliminating
  duplicate filenames or paths.
13Jan03
- During four simultaneous backups, the File daemon started
  detecting buffer corruptions. It turns out to be due to the
  fact that the smartall.c routines were not thread safe. They
  are now.
- Based on input from James MacLean and team, I eliminated a number
  of places where printf could be recursively called by using "%s".
- It turns out that because of an error of my understanding of
  mysql_escape_string(), the last argument was taken as the length
  of the string to be escaped rather than the maximum length.  I've
  now corrected all my code -- Thanks James.
12Jan03
- George Motter reported problems with UseDurations, and it seems 
  that there were a number of inconsistencies and problems with
  FirstWritten and LastWritten.  Hopefully for the most part they
  are now corrected.  Also fixed LabelDate if done through Console.
- Try to chase down reasons why there would be buffer overruns.
  Added P & V around referencing last_fname for status.
  Rewrote find_one.c with MEMPOOL, but not yet tested enough
  to commit.
10Jan03
- Give extra margin to converting filenames from Unix to Windows
  in attribs.c of findlib -- dumb cygwin API doesn't provide for
  a length.
- Added file:line traceback to size_of_pool_memory, check... and 
  realloc  in an attept to get closer to the memory overrun reported
  by James MacLean.
09Jan03
- Made yet another fix to quoted string -- paths!  Thanks to
  Scott Medlock for reporting this.
- Made | and < work.
- Implemented FIFO reading/writing. To do so, simply explicitly mention
  the fifo file (named pipe) in the Include AND add the new option
  readfifo=yes
08Jan03
- Started implementing | and < on Include names.
- Changed source to . in cats directory as requested by
  Andrew Kokarev.
