Paul,
Are you on a machine where a LONG is 4 bytes in size?
Then it's an overflow, could you try the attached patch.
Jean-Louis
Paul Haldane wrote:
I've just installed 2.5.0 on one of our backup servers (output from amadmin
<config> version at end) and have some odd behaviour to do with holding disks
(at least I think that's the problem).
We've been running Amanda (using the standard Fedora Core 2 rpms
-amanda-2.4.4p2-3) for ages - no problems. We're keen to move to 2.5.0 as I
understand that gives us the ability to span tapes when doing backups. Clients
will still be running 2.4.x (FC3 with amanda-client-2.4.4p3-1 in the case of
the client I'm having this particular problem with).
We've got six holding disks (which are all recognised by amcheck and were
correctly used with 2.4.4).
When the backup ran last night the smaller DLEs went through fine and were
taped but we have one DLE which is (just) bigger than a tape and bigger than a
single holding disk (~ 223G - largest of the successfully tapes DLEs was 37G).
It seems that Amanda filled one holding disk, moved on to a second holding disk, used some space there and then gave up when nearly at the end of the dump apparently thinking that it had run out of holding space (but the current holding area was only 74% full). I think I've pulled the relevant lines out of the log below (but have attached the last 50 lines in case I'm wrong or have message up the formatting).
Any thoughts on what might be happening? Is Amanda thinking that it's out of
holding space or have I misinterpreted the messages? Are there any of the
options that I used to build the Amanda server with which might be
problematical?
Paul
diff -u -r --show-c-function --exclude-from=amanda.diff
amanda-2.5.0.orig/server-src/driver.c
amanda-2.5.0.new.overflow/server-src/driver.c
--- amanda-2.5.0.orig/server-src/driver.c 2006-03-28 16:10:05.000000000
-0500
+++ amanda-2.5.0.new.overflow/server-src/driver.c 2006-04-03
10:42:32.000000000 -0400
@@ -1466,7 +1466,7 @@ handle_chunker_result(cookie)
chunker_cmd( chunker, CONTINUE, dp );
} else { /* !h[++activehd] - must allocate more space */
sched(dp)->act_size = sched(dp)->est_size; /* not quite true */
- sched(dp)->est_size = sched(dp)->act_size * 21 / 20; /* +5% */
+ sched(dp)->est_size = (sched(dp)->act_size/20) * 21; /* +5% */
sched(dp)->est_size = am_round(sched(dp)->est_size,
DISK_BLOCK_KB);
h = find_diskspace( sched(dp)->est_size - sched(dp)->act_size,
&dummy,
|