Bacula-users

Re: [Bacula-users] [Bacula-devel] Fwd: Unlimited Retention

2008-10-24 02:04:59
Subject: Re: [Bacula-users] [Bacula-devel] Fwd: Unlimited Retention
From: Kern Sibbald <kern AT sibbald DOT com>
To: bacula-devel AT lists.sourceforge DOT net
Date: Fri, 24 Oct 2008 08:01:16 +0200
Yes, this looks like an oversight on my part.  The editing was done unsigned 
and it should have used signed numbers.

I've attached a patch to this email that should correct the problem.  I
have compiled the patch, but have not explicitly tested it with a long 
retention period, so feedback would be welcome.

Dan: thanks for reporting this.

Best regards,

Kern

On Thursday 23 October 2008 14:19:07 Dan Langille wrote:
> FYI
>
> Begin forwarded message:
> > From: LeJav <lejav AT ibs-tls DOT com>
> > Date: October 23, 2008 4:10:25 AM EDT
> > To: bacula-users AT lists.sourceforge DOT net
> > Subject: [Bacula-users] Unlimited Retention
> >
> > Hello,
> >
> > Here is my problem: I want to backup my system with normal strategy
> >  (full every week, incremental, retention....), but I have also data
> > on
> >  this server that I want to archive indefinitely (without retention).
> > To do that, i declared first retention period for this job as 100
> > years.
> > But it did not work.
> > Investigating in source code, I found that:
> >
> > ua_prune.c
> > ...
> >   period = client->FileRetention;
> >   now = (utime_t)time(NULL);
> >
> >   /* Select Jobs -- for counting */
> >   Mmsg(query, count_select_job, edit_uint64(now - period, ed1),
> >        edit_int64(cr.ClientId, ed2));
> >   Dmsg3(050, "select now=%u period=%u sql=%s\n", (uint32_t)now,
> >               (uint32_t)period, query.c_str());
> > ...
> >
> > and : time() returns the time since the Epoch (00:00:00 UTC, January
> > 1, 1970), measured in seconds.
> > for instance, today, now = 1224742378 = 38.8 years
> > this means that if i set a retention > 39 years, now-period will be
> > negative,
> >  and then a very very big number in unsigned int64, so jobs will be
> > always pruned
> >
> > for information, there is no such problem for volume retention:
> > next_vol.c :
> > ...
> >   if ((mr->LastWritten + mr->VolRetention) < (utime_t)time(NULL)
> > ...
> > everything is utime_t = int64_t
> >  so, there is here no problem
> >
> >
> > it would be nice to have for retention a keyword like "infinite".
> >
> > The solution I have found is to set AutoPrune = no for the client,
> > and to set
> >  pruning for files, jobs and volumes for the jobs which need it.
> >
> > Any other suggestion ?
> >
> > Thx
> >
> >
> > -------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Moblin Your Move Developer's
> > challenge
> > Build the coolest Linux based applications with Moblin SDK & win
> > great prizes
> > Grand prize is a trip for two to an Open Source event anywhere in
> > the world
> > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> > _______________________________________________
> > Bacula-users mailing list
> > Bacula-users AT lists.sourceforge DOT net
> > https://lists.sourceforge.net/lists/listinfo/bacula-users


Attachment: 2.4.3-prune.patch
Description: Text Data

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users
<Prev in Thread] Current Thread [Next in Thread>