Bacula-users

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

2008-10-25 07:57:31
Subject: Re: [Bacula-users] [Bacula-devel] Fwd: Unlimited Retention
From: LeJav <lejav AT ibs-tls DOT com>
To: bacula-users AT lists.sourceforge DOT net
Date: Sat, 25 Oct 2008 13:51:00 +0200
I have tried the patch with success.
I can now set a retention of 100 years !

he is the trace for 38 years:
fn-archnfs-dir: ua_prune.c:208-0 select now=1224854259 period=1198368000 
sql=SELECT count(*) from Job WHERE JobTDate<26486259 AND
ClientId=1 AND PurgedFiles=0

and now for 100 years, the difference is negative and test is correct:
fn-archnfs-dir: ua_prune.c:208-0 select now=1224854392 period=3153600000 
sql=SELECT count(*) from Job WHERE JobTDate<-1928745608 AND
ClientId=1 AND PurgedFiles=0

thx for this very quick patch !

please, could you confirm that this patch will be integrated in the next stable 
release ?


> 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@ib...>
>> > Date: October 23, 2008 4:10:25 AM EDT
>> > To: bacula-users@li...
>> > 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

<Prev in Thread] Current Thread [Next in Thread>
  • Re: [Bacula-users] [Bacula-devel] Fwd: Unlimited Retention, LeJav <=