Amanda-Users

Re: suspiciously terrible performance of 2.5.1 beta on OpenBSD/amd64 (now a crash...)

2006-08-21 09:49:00
Subject: Re: suspiciously terrible performance of 2.5.1 beta on OpenBSD/amd64 (now a crash...)
From: Jean-Louis Martineau <martineau AT zmanda DOT com>
To: David Golden <dgolden AT cp.dias DOT ie>
Date: Mon, 21 Aug 2006 08:42:37 -0400
David,

Could you try the attached patch?
It should fix the driver crash.

Jean-Louis

David Golden wrote:
On Wednesday 02 August 2006 16:18, David Golden wrote:

so switched nearly-2.5.1 to vanilla "bsd" with holding disk in order to
try another test with nearly-2.5.1 to try to eliminate that as the issue...
but I can't! Bigger Problems:
Amanda "driver" process just upped and dumped core - guess I got my wish
for a crash... Could be entirely unrelated to previous performance problem,
of course.


FWIW, have filed driver core dump as bug #1534445
However, have also just found that it doesn't _always_ crash. e.g. if there's
only one DLE and it's of type always-full (that uses the holding disk), it does run:

*** And in that case, dump -> holding disk *is* taking a terribly long time with 2.5.1b2 compared to 2.4.5p1 While 2.4.5p1 to holdin disk is presumably slowed somewhat for the local filesystems in question by some shared-spindles headthrashing, dump still only takes a few minutes at a few MB/sec in 2.4.5p1, 2.5.1b2's sendbackup dump was saying it was going to take 14-15 hours... for a 10 GB FS with < 2 GB of data ? Argh. Also spotted a zombie gzip process hanging about... and I don't think indexing is actually working right.

So, anyway, have opened bug #1534629 for the performance issue.







diff -u -r --show-c-function --exclude-from=amanda.diff 
amanda-2.5.1b2.new/server-src/driver.c 
amanda-2.5.1b2.new.driver.core/server-src/driver.c
--- amanda-2.5.1b2.new/server-src/driver.c      2006-07-28 13:46:56.000000000 
-0400
+++ amanda-2.5.1b2.new.driver.core/server-src/driver.c  2006-08-21 
08:37:31.000000000 -0400
@@ -861,7 +861,6 @@ start_some_dumps(
            } else if(sched(diskp)->no_space) {
                cur_idle = max(cur_idle, IDLE_NO_DISKSPACE);
            } else if (diskp->to_holdingdisk == HOLD_NEVER) {
-               free_assignedhd(holdp);
                cur_idle = max(cur_idle, IDLE_NO_HOLD);
            } else if ((holdp =
                find_diskspace(sched(diskp)->est_size, &cur_idle, NULL)) == 
NULL) {