This patch fixes a race condition where a Job is terminating at the same time that another job reaches the end of Volume. In that case, sometimes the last block or two are not written to the Volume. This seems to be relatively rare, but does result in data loss. This fixes bug #964. Apply the patch to Bacula version 2.2.4 (or possibly any previous 2.2.x version) with: cd patch -p0 <2.2.4-lost-block.patch ./configure (your options) make ... make install Index: src/stored/append.c =================================================================== --- src/stored/append.c (revision 5602) +++ src/stored/append.c (working copy) @@ -287,7 +287,7 @@ * Check if we can still write. This may not be the case * if we are at the end of the tape or we got a fatal I/O error. */ - if (dev->can_write()) { + if (ok || dev->can_write()) { if (!write_session_label(dcr, EOS_LABEL)) { Jmsg1(jcr, M_FATAL, 0, _("Error writting end session label. ERR=%s\n"), dev->bstrerror());