-Kern;;;2007/9/14;;;14:30
-Bacula version 2.2.4 Release
+Kern;;;2007/9/29;;;20:30
+I have found and fixed a serious data loss bug in Bacula.
+
+This bug was very elusive and time consuming to track down. It
+turned out to be a race condition that can lose the last one or
+two blocks of a Job, which can happen in rare cases only when
+running multiple simultaneous jobs when a volume fills and one
+Job finishes receiving the last data from the FD and at the same
+time a second job detects the end of the Volume. The bug was
+introduced in version 2.0.0 and did not exist in version 1.38.x.
+If the bug is triggered, the data is lost (not written to the
+Volume), and it can occur for any backup job of any level under
+the conditions noted above.
+
+The bug is reported in the bugs database as bug #964, and just
+this morning I found and tested a fix, which is attached as a patch
+to the bug report. The patch (2.2.4-lost-block.patch) is also
+uploaded to the bacula-patches 2.2.x release area. This bug may
+also be part of the problems reported in bug #935 and possibly
+#903.
+
+Also in the bacula-patches 2.2.x area, you will find other
+patches that fixes bugs #953, 966, 967, 965, 958, 908, and
+955. Please refer to bugs.bacula.org for the details.
+
+Though this bug quite serious (data loss), it should be rare.
+However, we recommend everyone to apply the patch.
+;;;
+Kern;;;2007/9/14;;;14:30
+Bacula version 2.2.4 Released
+
This version of Bacula is a minor bug release to version 2.2.3.
It contains the following fixes:
\item [DifferentialPool=Differential]
\index[dir]{DifferentialPool}
\index[dir]{Directive!DifferentialPool}
- specifies to use the Pool named {\bf Differential} if the job is a
-differential backup.
+ specifies to use the Pool named {\bf Differential} if the job is a
+ differential backup.
\item [IncrementalPool=Incremental]
\index[dir]{IncrementalPool}
\index[dir]{SpoolData}
\index[dir]{Directive!SpoolData}
tells Bacula to request the Storage daemon to spool data to a disk file
-before putting it on tape.
+ before writing it to the Volume (normally a tape). Thus the data is
+ written in large blocks to the Volume rather than small blocks. This
+ directive is particularly useful when running multiple simultaneous
+ backups to tape. It prevents interleaving of the job data and reduces
+ or eliminates tape drive stop and start commonly known as "shoe-shine".
\item [SpoolSize={\it bytes}]
\index[dir]{SpoolSize}
\index[dir]{Directive!SpoolSize}
where the bytes specify the maximum spool size for this job.
The default is take from Device Maximum Spool Size limit.
+ This directive is available only in Bacula version 2.3.5 or
+ later.
\item [WritePartAfterJob=yes|no]
\index[dir]{WritePartAfterJob}