Hi,
I recently needed to restore some data from an old backup and ran into two
problems. One problem was annoying but no big deal, the other is a real
problem.
First problem:
I started an interactive restore from a linux machine using a remote
tape drive hooked to an O2 using the session id, xfsrestore found
the dump and gave the normal interactive command line. I found the
file I wanted to restore and "add"ed it and then did "extract". xfsrestore
then immediately returned with a status of SUCCESS after only having
created the directories and not restoring the file I had selected.
Second problem:
I started a non-interactive xfsrestore session in the same way I
did the above and it once again found the xfsdump session and it
extracted a couple gigs of data before it gave this error:
xfsrestore: restoring non-directory files
xfsrestore: examining media file 1
xfsrestore: seeking past media file directory dump
xfsrestore: drive_scsitape.c:1463: do_next_mark: Assertion `rechdrp->first_mark_
offset - rechdrp->file_offset <= ( off64_t )( contextp->dc_recsz )' failed.
Aborted (core dumped)
I also tried restoring this dump session directly from the O2 that
has the tape drive and it also failed with a SEGV but without the
assert error message (sorry I don't have the exact output). I had
the same problem with an earlier backup of the same machine.
I did the non-interactive restore above again with
"-v drive=debug,media=debug" added to the command line and here is
the last 30 or so lines of the debug output:
xfsrestore: drive op: return read buf: sz 73728 (0x12000)
xfsrestore: drive op: read: wanted 32 (0x20)
xfsrestore: drive op: return read buf: sz 32 (0x20)
xfsrestore: drive op: get mark
xfsrestore: drive op: read: wanted 256 (0x100)
xfsrestore: drive op: return read buf: sz 256 (0x100)
xfsrestore: Media_end: pos==3
xfsrestore: drive op: end read
xfsrestore: tape op: get status
xfsrestore: tape status = fmk,wprot,onl
xfsrestore: encountered EOF attempting to read record 8849
xfsrestore: Media_mfile_next: purp==2 pos==0
xfsrestore: drive op: begin read
xfsrestore: tape op: get status
xfsrestore: tape status = fmk,wprot,onl
xfsrestore: tape op: reading 245760 bytes
xfsrestore: validating media file header
xfsrestore: media file header valid: media file ix 1
xfsrestore: examining media file 1
xfsrestore: file 1 in object 1 of stream 0
xfsrestore: file 10 in stream, file 1 of dump 0 on object
xfsrestore: dump session label: "joe"
xfsrestore: dump session id: a28f36fb-8d12-44a9-8df1-657ca2dc62af
xfsrestore: stream 0, object 1, file 1
xfsrestore: drive op: read: wanted 131072 (0x20000)
xfsrestore: tape op: reading 245760 bytes
xfsrestore: tape op: reading 245760 bytes
xfsrestore: drive op: return read buf: sz 4736 (0x1280)
xfsrestore: drive op: read: wanted 126336 (0x1ed80)
xfsrestore: tape op: get status
xfsrestore: tape status = fmk,wprot,onl
xfsrestore: encountered EOF attempting to read record 2
xfsrestore: using on-media session inventory
xfsrestore: drive op: end read
xfsrestore: drive op: get device class
xfsrestore: drive op: eject media
xfsrestore: tape op: closing drive
The Linux machine is currently running the stock XFS 1.0.2 install with
the (non-kernel) RedHat updates. The Linux machine was most likely
running the XFS 1.0.1 version when it was backed up. The O2 is running
IRIX 6.5.14m. The Linux machine is a VA Linux with (if I recall correctly)
a TYAN Thunder 2500 motherboard, 3GB of SDRAM and Seagate disks on the
integrated Symbios SCSI controllers. The tape drive is a four tape
Seagate AIT jukebox.
The backup that created this dump did not have any error messages but
was split between two tapes.
The command line I used to backup the drive is:
/usr/sbin/xfsdump -l 0 -T -d 2048 -o -L joe -Y 7 -f
guest@O2:/dev/rmt/tps2d6nrvc /dev/sdc1
The command line I used to do the interactive restore is:
xfsrestore -i -S 87020d4e-4b28-4ddb-ab0a-54bd071d50c3 -f
guest@O2:/dev/rmt/tps2d6nrvc .
I have the xfsrestore core file if it is useful. I can supply any other
information needed.
Thanks for any assistance.
--
------- Stephan
|