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

Reply via email to