Amanda-Users

Re: amdump freezes

2008-05-30 15:27:35
Subject: Re: amdump freezes
From: Jean-Louis Martineau <martineau AT zmanda DOT com>
To: sgw AT amanda DOT org
Date: Fri, 30 May 2008 15:23:14 -0400
Stefan G. Weichinger wrote:
Jean-Louis Martineau schrieb:
Stefan G. Weichinger wrote:
Jean-Louis Martineau schrieb:
It must abort the dump, and restart it.

And what's the solution for my problem?
Did it retried the dump on the next tape?

Yes.
It did not, it did other dump on the next tape.
If a dump to tape fail, it is not retried, this is the problem you have.
Try the attached patch.

Can you explain the problem, because i don't understand it, except you hit the end of a tape.

I try to "amadmin force" a few DLEs to 2 tapes for archiving them off-site.

All but one DLE succeed, one always hits EOT (to be expected) and triggers that error.

add more holding disk, ...

I wanted to *not* use the holdingdisk to avoid copying /data/xy within the same RAID-system every time.

One big fat RAID5 contains data and holdingdisk there.
Seems a waste of time and ressources to me ...

But if it helps doing those archive tapes, OK.
It can be faster, it's hardware dependent.

Jean-Louis
diff -u -r --show-c-function --new-file 
--exclude-from=/home/martinea/src.orig/amanda.diff 
--ignore-matching-lines='$Id:' amanda-2.5.2p1/server-src/driver.c 
amanda-2.5.2p1.retry/server-src/driver.c
--- amanda-2.5.2p1/server-src/driver.c  2008-05-30 15:15:33.000000000 -0400
+++ amanda-2.5.2p1.retry/server-src/driver.c    2008-05-30 15:13:49.000000000 
-0400
@@ -443,18 +443,20 @@ main(
        }
        else if (!degraded_mode) {
            int rc = dump_to_tape(diskp);
-           if(rc == 1)
+           if(rc == 1 && sched(diskp)->attempted < 2) {
                log_add(L_INFO,
                        "%s %s %d [dump to tape failed, will try again]",
                        diskp->host->hostname,
                        diskp->name,
                        sched(diskp)->level);
-           else if(rc == 2)
+               headqueue_disk(&runq, diskp);
+           } else if(rc == 2) {
                log_add(L_FAIL, "%s %s %s %d [dump to tape failed]",
                        diskp->host->hostname,
                        diskp->name,
                        sched(diskp)->datestamp,
                        sched(diskp)->level);
+           }
        }
        else
            log_add(L_FAIL, "%s %s %s %d [%s]",
<Prev in Thread] Current Thread [Next in Thread>