On Wednesday 01 April 2009 10:07:33 Graham Keeling wrote: > On Tue, Mar 31, 2009 at 07:33:25PM +0100, Kern Sibbald wrote: > > On Tuesday 31 March 2009 16:44:13 Graham Keeling wrote: > > > Hello, > > > > > > A few months ago, I made a bug report about two backup jobs writing to > > > the same volume at the same time. This would cause corruption of the > > > backups. Via email on this list, I suggested that JobMedia records > > > should be created for the volumes from the start. > > > > > > The bug report is here: http://bugs.bacula.org/view.php?id=1188 > > > > > > Kern's "simple fix" was to check whether the Media's LastWritten and > > > FirstWritten database values in the is_volume_purged() function. It now > > > returns false if one of them isn't set. > > > > > > I made another bug report, as this wasn't enough to fix the problem. > > > Corruption could very easily happen when FirstWritten and LastWritten > > > were set, when the volume retentions ran out. > > > Here is the bug report: http://bugs.bacula.org/view.php?id=1208 > > > > > > Kern then had another go at fixing the bug. I think that this was by > > > creating JobMedia records for the volumes from the start. > > > > > > > > > > > > On upgrading a computer to a newer version of bacula today, I found > > > that I had old volumes for which is_volume_purged() would always return > > > false because LastWritten was not set. There were no JobMedia records > > > for these volumes. This means that the volumes never get purged without > > > manual intervention. > > > > > > Since bacula is now creating the JobMedia records for the volumes from > > > the start, it seems as if the FirstWritten/LastWritten checks in > > > is_volume_purged() are superfluous and are getting in my way. > > > > > > If the problem is now fixed properly, can these checks be removed? > > > > You haven't clearly stated why the checks on FirstWritten and LastWritten > > are creating problems. As it is, I see no reason to remove them > > I have old volumes that contain nearly a gigabyte of data, and have > VolStatus=='Full' or VolStatus=='Used', have LastWritten==0, and > VolRetention==0, and have no associated JobMedia records. > > They never get auto-purged, because is_volume_purged() always returns false > for volumes with LastWritten==0.
It seems to me that LastWritten should be non-zero and that the easiest solution is to run an SQL command that sets LastWritten non-zero for those volumes where it should be. If you can point out some logic error in the current code (not just a special case where the catalog seems inconsistent), I'll consider changing it, otherwise the best choice is not to change anything. > > > -- in any case, it is too late for 3.0, which is ready to go. > > That's OK, I'm not really worried about being in time for that. > > > --------------------------------------------------------------------------- >--- _______________________________________________ > Bacula-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/bacula-devel ------------------------------------------------------------------------------ _______________________________________________ Bacula-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/bacula-devel
