Hello...
Recently I started using application-tool with amgtar to solve some
backup problems. One of these problems is where several smaller
filesystems were merged creating a large filesystem. The amanda backup
run using gtar started failing. After much debugging I saw that the
gtar argument --listed-incremental /PATH was taking too long and failing
with:
dumper: [request failed: timeout waiting for REP](too)
df -ih shows 14M inodes used
I switched from the standard gtar to a hacked application/amgtar with
these lines ripped out:
my_argv[i++] = "--listed-incremental";
my_argv[i++] = incrname;
The backup is currently running successfully :) Attached is a patch to
amgtar.c adding an option to disable listed-incremental based on the
atime option. I have not tested this yet as the current run will not
finish for another 20 hours or so. Can someone glance at the patch to
see if I missed anything?
--
Christopher McCrory
"The guy that keeps the servers running"
chrismcc AT pricegrabber DOT com
http://www.pricegrabber.com
Let's face it, there's no Hollow Earth, no robots, and
no 'mute rays.' And even if there were, waxed paper is
no defense. I tried it. Only tinfoil works.
--- amanda-2.6.1p1-orig/application-src/amgtar.c 2009-04-07
09:57:25.000000000 -0700
+++ amanda-2.6.1p1-new/application-src/amgtar.c 2009-08-21 11:26:09.141031000
-0700
@@ -45,6 +45,7 @@
* EXCLUDE-FILE
* EXCLUDE-LIST
* EXCLUDE-OPTIONAL
+ * LISTED-INCREMENTAL (default YES)
* NORMAL
* IGNORE
* STRANGE
@@ -146,6 +147,7 @@
static int gnutar_atimepreserve;
static int gnutar_checkdevice;
static int gnutar_sparse;
+static int gnutar_listedincremental;
static GSList *normal_message = NULL;
static GSList *ignore_message = NULL;
static GSList *strange_message = NULL;
@@ -181,6 +183,7 @@
{"exit-handling" , 1, NULL, 26},
{"calcsize" , 0, NULL, 27},
{"tar-blocksize" , 1, NULL, 28},
+ {"listed-incremental" , 1, NULL, 29},
{NULL, 0, NULL, 0}
};
@@ -454,6 +457,9 @@
case 27: argument.calcsize = 1;
break;
case 28: argument.tar_blocksize = stralloc(optarg);
+ case 29: if (optarg && strcasecmp(optarg, "YES") != 0)
+ gnutar_listedincremental = 0;
+ break;
case ':':
case '?':
break;
@@ -518,6 +524,7 @@
dbprintf("SPARSE %s\n", gnutar_sparse? "yes":"no");
dbprintf("ATIME-PRESERVE %s\n", gnutar_atimepreserve? "yes":"no");
dbprintf("CHECK-DEVICE %s\n", gnutar_checkdevice? "yes":"no");
+ dbprintf("LISTED-INCREMENTAL %s\n", gnutar_listedincremental? "yes":"no");
{
amregex_t *rp;
for (rp = re_table; rp->regex != NULL; rp++) {
@@ -1184,8 +1191,10 @@
my_argv[i++] = "--atime-preserve=system";
if (!gnutar_checkdevice)
my_argv[i++] = "--no-check-device";
- my_argv[i++] = "--listed-incremental";
- my_argv[i++] = incrname;
+ if (gnutar_listedincremental) {
+ my_argv[i++] = "--listed-incremental";
+ my_argv[i++] = incrname;
+ }
if (gnutar_sparse)
my_argv[i++] = "--sparse";
if (argument->tar_blocksize) {
|