Amanda-Users

Re: FW: amrecover problem

2007-05-30 16:55:08
Subject: Re: FW: amrecover problem
From: "Dustin J. Mitchell" <dustin AT zmanda DOT com>
To: "McGraw, Robert P." <rmcgraw AT purdue DOT edu>
Date: Wed, 30 May 2007 13:45:11 -0500
On Wed, May 30, 2007 at 01:41:17PM -0400, McGraw, Robert P. wrote:
> > amrecover> cd jflack
> > amrecover: regex "/jflack/$/": unknown regex error
> > 
> > ... and amrecover exits out to the shell.

Interesting -- I get the same regex, but my regex library (in libc) doesn't
complain about it.  I haven't heard of anyone else having this problem, either.
Do your local modifications include any sort of funny business with the regex
library?  Remind me what OS you're running again?

I get:

amrecover> setdisk /tmp/amanda/prefix/etc
200 Disk set to /tmp/amanda/prefix/etc.
amrecover> cd amanda
regex: ^amanda$
regex_path: amanda/$
path_on_disk: /amanda/$
path_on_disk_slash: /amanda/$/
/tmp/amanda/prefix/etc/amanda

With the following patch applied:

Index: recover-src/set_commands.c
===================================================================
--- recover-src/set_commands.c  (revision 385)
+++ recover-src/set_commands.c  (working copy)
@@ -324,6 +324,7 @@
        amfree(regex);
         return;
     }
+    fprintf(stderr, "regex: %s\n", regex);
     /*
      * glob_to_regex() anchors the beginning of the pattern with ^,
      * but we will be tacking it onto the end of the current directory
@@ -336,6 +337,7 @@
        regex_path[strlen(regex_path) - 1] = '\0';
        strappend(regex_path, "/$");
     }
+    fprintf(stderr, "regex_path: %s\n", regex_path);
 
     /* convert path (assumed in cwd) to one on disk */
     if (strcmp(disk_path, "/") == 0)
@@ -345,6 +347,7 @@
         path_on_disk = vstralloc(clean_disk_path, "/", regex_path, NULL);
         amfree(clean_disk_path);
     }
+    fprintf(stderr, "path_on_disk: %s\n", path_on_disk);
 
     cd_dir(path_on_disk, uqglob);
 
@@ -404,6 +407,7 @@
     DIR_ITEM *ditem;
 
     path_on_disk_slash = stralloc2(path_on_disk, "/");
+    fprintf(stderr, "path_on_disk_slash: %s\n", path_on_disk_slash);
 
     nb_found = 0;
 

-- 
        Dustin J. Mitchell
        Storage Software Engineer, Zmanda, Inc.
        http://www.zmanda.com/

<Prev in Thread] Current Thread [Next in Thread>