There is a planner bug with force-bump when a dle is overdue.
The attached patch should fix it.

As a workaround, you can set a large dumpcycle (eg. 10000).

force-bump will prevent full, but it will also bump the level, this might not be what you want.

Setting a large dumpcycle and a small maxpromoteday should do incremental without bumping the level.

Jean-Louis

On 12/22/2011 07:20 AM, Bryan Hodgson wrote:
On Wed, Dec 21, 2011 at 03:42:32PM -0500, Bryan Hodgson wrote:
On Wed, Dec 21, 2011 at 01:11:00PM -0500, Jon LaBadie wrote:
On Wed, Dec 21, 2011 at 10:01:36AM -0500, Bryan Hodgson wrote:
One day next week I want to prevent any level 0 dumps, and run only
incrementals for that one night.

It's not obvious to me from the docs that 'amadmin force bump' will
actually prevent amanda from concluding that it's time for a level
0.  Would 'force bump' serve my purpose?  (My guess = no.)

There is more than one runcycle in our tape cycle, and we won't be
over-writing the most recent level 0 for any dump.

I looked at the man page and I agree the question is not addressed:
"if a level 0 were due, would force-bump cause an incremental instead?"

Jon
Okay, so it's not just me.  Thanks.

124 file systems, 2 are due today, all others are due for level 0 in
4 to 6 days.  And, of course, amanda usually moves some forward
early.

Okay, so I switched dumpcycle to 3 and all DLEs to force-bump for
tonight's run.  amadmin due now thinks there are some level 0's due
today.  We'll see what happens.

Bryan

It didn't work.  No obvious reason.  planner results look okay, but
amdump failed as soon as planner finished with all DLEs showing
'RESULTS MISSING' via amreport.  Ran unforce-bump on DLEs, reset
dumpcycle to its regular value, and amdump runs successfully.

Not a problem, will steer a different course.

Bryan

diff --git a/server-src/planner.c b/server-src/planner.c
index 4e70e24..5b61c97 100644
--- a/server-src/planner.c
+++ b/server-src/planner.c
@@ -3051,7 +3051,8 @@ static int promote_hills(void)
     }
 
     for(dp = schedq.head; dp != NULL; dp = dp->next) {
-       days = est(dp)->next_level0;   /* This is > 0 by definition */
+       days = est(dp)->next_level0;
+       if (days < 0) days = 0;
        if(days<my_dumpcycle && !dp->skip_full && dp->strategy != DS_NOFULL &&
           dp->strategy != DS_INCRONLY) {
            sp[days].disks++;

Reply via email to