Amanda-Users

Re: Dumps performed, but also MISSING ???

2006-04-21 16:25:39
Subject: Re: Dumps performed, but also MISSING ???
From: Jean-Louis Martineau <martineau AT zmanda DOT com>
To: Jean-Louis Martineau <martineau AT zmanda DOT com>
Date: Fri, 21 Apr 2006 16:21:52 -0400
Hi,

Could you try this patch?

It's the datestamp in the chunker line that are not correct, they should be the same as the dumper line.

Jean-Louis

Jean-Louis Martineau wrote:
Hi,

I found the problem, it will report a MISSING for all dump that doesn't start the same day you run your amdump.

I will provide a patch soon.

Jean-Louis

jeffrey d anderson wrote:
The strange behavior described here started when I upgraded my server to amanda-2.5.0. I was wondering if anyone else had seen this behavior:


I run amanda 2.5.0 with a Redhat Linux 9 server attached to an ADIC Scalar 24 changer. My configuration backs up about 20 clients (mix of linux and SunOS, running various amanda versions from 2.4.3 to 2.5.0) with about 65 DLEs. I backup about 200GB per night with a dumpcycle of 7 days.

This configuration has been successfully running for about a year, and seems to still be successful.

So here is the point of this message. I upgraded the server from amanda 2.4.4p4 to 2.5.0 on March 30 and things appear to be running fine. Backups proceed and I've done successful restores.

But In the amanda mail report I get messages like this:

DUMP SUMMARY:
DUMPER STATS TAPER STATS HOSTNAME DISK L ORIG-kB OUT-kB COMP% client1.here.org / 1 23290 5568 23.9 client1.here.org / MISSING ------------------------------

client2.here.org -/coldprobe 0 93053120 93053152 -- client2.here.org -/coldprobe MISSING---------------------

It looks like these dumps have succeeded, but they are ALSO reported as missing! Not all DLEs are reported missing, and the "MISSING" ones are different each night (different hosts, different DLEs). Some nights there are no "MISSING" entries, some nights there are a couple, some nights there are five or six.

This started with the upgrade to amanda-2.5.0 on the server. No changes were made to the disklist at that time. I thought perhaps I had duplicate entries in the disklist file, and amanda's handling of them had changed, but that does not appear to be the case.

Is this something I should be worried about? Has anyone else seen this behavior?



diff -u -r --show-c-function --exclude-from=amanda.diff 
amanda-2.5.0.orig/server-src/chunker.c amanda-2.5.0.new/server-src/chunker.c
--- amanda-2.5.0.orig/server-src/chunker.c      2006-03-28 16:10:06.000000000 
-0500
+++ amanda-2.5.0.new/server-src/chunker.c       2006-04-21 15:57:28.000000000 
-0400
@@ -84,7 +84,7 @@ static char *options = NULL;
 static char *progname = NULL;
 static int level;
 static char *dumpdate = NULL;
-static char *datestamp;
+static char *datestamp = NULL;
 static int command_in_transit;
 
 static dumpfile_t file;
@@ -167,7 +167,15 @@ main(main_argc, main_argv)
     signal(SIGPIPE, SIG_IGN);
     signal(SIGCHLD, SIG_IGN);
 
-    datestamp = construct_datestamp(NULL);
+    cmd = getcmd(&cmdargs);
+    if(cmd == START) {
+       if(cmdargs.argc <= 1)
+           error("error [dumper START: not enough args: datestamp]");
+       datestamp = newstralloc(datestamp, cmdargs.argv[2]);
+    }
+    else {
+       error("Didn't get START command");
+    }
 
 /*    do {*/
        cmd = getcmd(&cmdargs);
diff -u -r --show-c-function --exclude-from=amanda.diff 
amanda-2.5.0.orig/server-src/driver.c amanda-2.5.0.new/server-src/driver.c
--- amanda-2.5.0.orig/server-src/driver.c       2006-04-05 08:27:56.000000000 
-0400
+++ amanda-2.5.0.new/server-src/driver.c        2006-04-21 15:58:22.000000000 
-0400
@@ -791,6 +791,7 @@ start_some_dumps(rq)
            chunker->result = LAST_TOK;
            dumper->result = LAST_TOK;
            startup_chunk_process(chunker,chunker_program);
+           chunker_cmd(chunker, START, (void *)datestamp);
            chunker->dumper = dumper;
            chunker_cmd(chunker, PORT_WRITE, diskp);
            cmd = getresult(chunker->fd, 1, &result_argc, result_argv, 
MAX_ARGS+1);
diff -u -r --show-c-function --exclude-from=amanda.diff 
amanda-2.5.0.orig/server-src/driverio.c amanda-2.5.0.new/server-src/driverio.c
--- amanda-2.5.0.orig/server-src/driverio.c     2006-03-28 16:10:06.000000000 
-0500
+++ amanda-2.5.0.new/server-src/driverio.c      2006-04-21 16:10:41.000000000 
-0400
@@ -440,12 +440,15 @@ disk_t *dp;
     assignedhd_t **h=NULL;
     char *features;
 
-    if(dp && sched(dp) && sched(dp)->holdp) {
+    if(cmd != START && dp && sched(dp) && sched(dp)->holdp) {
        h = sched(dp)->holdp;
        activehd = sched(dp)->activehd;
     }
 
     switch(cmd) {
+    case START:
+       cmdline = vstralloc(cmdstr[cmd], " ", (char *)dp, "\n", NULL);
+       break;
     case PORT_WRITE:
        if (dp && h) {
            holdalloc(h[activehd]->disk)->allocated_dumpers++;
diff -u -r --show-c-function --exclude-from=amanda.diff 
amanda-2.5.0.orig/server-src/server_util.c 
amanda-2.5.0.new/server-src/server_util.c
--- amanda-2.5.0.orig/server-src/server_util.c  2006-03-28 16:10:07.000000000 
-0500
+++ amanda-2.5.0.new/server-src/server_util.c   2006-04-21 16:11:53.000000000 
-0400
@@ -35,7 +35,7 @@
 
 const char *cmdstr[] = {
     "BOGUS", "QUIT", "QUITTING", "DONE", "PARTIAL", 
-    "FILE-DUMP", "PORT-DUMP", "CONTINUE", "ABORT",     /* dumper cmds */
+    "START", "FILE-DUMP", "PORT-DUMP", "CONTINUE", "ABORT",    /* dumper cmds 
*/
     "FAILED", "TRY-AGAIN", "NO-ROOM", "RQ-MORE-DISK",  /* dumper results */
     "ABORT-FINISHED", "BAD-COMMAND",                   /* dumper results */
     "START-TAPER", "FILE-WRITE", "PORT-WRITE",         /* taper cmds */
diff -u -r --show-c-function --exclude-from=amanda.diff 
amanda-2.5.0.orig/server-src/server_util.h 
amanda-2.5.0.new/server-src/server_util.h
--- amanda-2.5.0.orig/server-src/server_util.h  2006-03-28 16:10:07.000000000 
-0500
+++ amanda-2.5.0.new/server-src/server_util.h   2006-04-21 15:58:53.000000000 
-0400
@@ -36,7 +36,7 @@
 
 typedef enum {
     BOGUS, QUIT, QUITTING, DONE, PARTIAL,
-    FILE_DUMP, PORT_DUMP, CONTINUE, ABORT,             /* dumper cmds */
+    START, FILE_DUMP, PORT_DUMP, CONTINUE, ABORT,      /* dumper cmds */
     FAILED, TRYAGAIN, NO_ROOM, RQ_MORE_DISK,           /* dumper results */
     ABORT_FINISHED, BAD_COMMAND,                       /* dumper results */
     START_TAPER, FILE_WRITE, PORT_WRITE,               /* taper cmds */
<Prev in Thread] Current Thread [Next in Thread>