Amanda-Users

amrecover failure, corrupted gzip file?

2003-03-21 11:40:19
Subject: amrecover failure, corrupted gzip file?
From: Mike Simpson <msimpson AT abyssus.doit.wisc DOT edu>
To: amanda-users AT amanda DOT org
Date: Fri, 21 Mar 2003 09:01:11 -0600
Hi --

Running Amanda 2.4.4 servers and clients, using a RedHat 7.3 tape 
host, backing up using DUMP method (dump/restore) ext2 filesystems on 
a RedHat 7.2 client host:

I tried to do an amrecover on the /home filesystem (~8 GB), which
recovered all of the directories (as expected) and about 2/3's of the
actual data before terminating with a message asking if I wanted to 
change volumes (which I stupidly forgot to cut and paste, and can't 
find in any of my scrollback buffers, sorry).  Then prompted for 
aborting, then whether or not to dump core, the terminated.  Nothing 
particularly unusual in the amrecover debug file on the client side.

The corresponding amidxtaped debug file on the tape host side seemed 
to be running normally, then terminating on a gzip error:

  amidxtaped: time 10.959: Ready to execv amrestore with:
  path = /usr/local/sbin/amrestore
  argv[0] = "amrestore"
  argv[1] = "-p"
  argv[2] = "-h"
  argv[3] = "-l"
  argv[4] = "LSX-13"
  argv[5] = "-f"
  argv[6] = "2"
  argv[7] = "/dev/tapex"
  argv[8] = "^whisper$"
  argv[9] = "^/home$"
  argv[10] = "20030315"
  amrestore:   2: restoring whisper._home.20030315.0

  gzip: stdin: invalid compressed data--format violated
  Error 32 (Broken pipe) offset -2147483648+131072, wrote 0
  amrestore: pipe reader has quit in middle of file.
  amidxtaped: time 3606.244: amrestore terminated normally with status: 2
  amidxtaped: time 3606.244: rewinding tape ...
  amidxtaped: time 3623.767: done
  amidxtaped: time 3623.768: pid 5140 finish time Thu Mar 20 11:11:19 2003

I was able to recover the raw file from tape using dd, i.e.

  dd if=/dev/tapex of=./label-x bs=128k count=1

which recovered:

  AMANDA: TAPESTART DATE 20030315 TAPE LSX-13

Then:

  mt -f /dev/tapex asf 2
  dd if=/dev/tapex of=./label-2 bs=128k count=1

which recovered:

  AMANDA: FILE 20030315 whisper /home lev 0 comp .gz program /sbin/dump
  To restore, position tape at start of file and run:
          dd if=<tape> bs=128k skip=1 | /usr/bin/gzip -dc | sbin/restore -f... -

I did that, and was successful in recovering the file from tape:

  -rw-r--r--    1 msimpson msimpson 2872049664 Mar 20 13:20 whisper_home_0.gz

I tried to do the pipe to "restore", with a failure similar to the 
above.  The gzip file looks like it's become corrupted:

  $ file whisper_home_0.gz
  whisper_home_0.gz: gzip compressed data, from Unix, max speed

  $ file -z whisper_home_0.gz
  whisper_home_0.gz: new-fs dump file (little endian), This dump Sat Mar 15 
20:03:59 2003, Previous dump Wed Dec 31 18:00:00 1969, Volume 1, Level zero, 
type: tape header, Label none, Filesystem /home, Device /dev/datavg/homelv, 
Host whisper.doit.wisc.edu, Flags 1 (gzip compressed data, from Unix, max speed)

_but_:

  $ gzip -l /projects/archives/whisper_home_0.gz
    compressed        uncompressed  ratio uncompressed_name
    2872049664                   0   0.0% whisper_home_0

and when I try to unzip it, even using the trick I found at 
www.gzip.org to avoid the 4gb file limit that's apparently a problem 
on some versions of gzip, I get the same error as in the debug file:

  $ gunzip < whisper_home_0.gz > whisper_home_0

  gunzip: stdin: invalid compressed data--format violated

  $ ls -l whisper_home*
  -rw-r--r--    1 msimpson msimpson 2872049664 Mar 20 13:20 whisper_home_0.gz
  -rw-r--r--    1 msimpson msimpson 6030524416 Mar 20 15:23 whisper_home_0

Any tips or tricks or other thoughts?  Is this the Linux dump/restore 
problem I've seen talked about on the mailing list?  I don't 
understand how the gzip file could be corrupted by a problem internal 
to the dump/restore cycle.

Thanks for any help,

-mgs



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