* Jean-Louis Martineau <martineau AT zmanda DOT com> [20070706 08:15]:
> Try the attached patch with amfetchdump, it included the previous patch.
I'm quite happy to report that works!
I successfully restored a DLE spanning 7 tapes:
(sorry for the gory details below)
/opt/amanda/amanda2/sbin/amfetchdump -p -a stk_80-conf2 \
? yorick /data/ipl/ipl10 20070630 | /usr/freeware/bin/tar -xpf -
7 tape(s) needed for restoration
The following tapes are needed: stk_40-conf2-000017 stk_40-conf2-000018
stk_40-conf2-000019 stk_40-conf2-000020 stk_40-conf2-000014 stk_40-conf2-000015
stk_40-conf2-000001
Scanning stk_40-conf2-000017 (slot 31)
amfetchdump: 14: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 1/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 15: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 2/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: Search of stk_40-conf2-000017 complete
Label mismatch, got stk_40-conf2-000017 and expected stk_40-conf2-000018
Looking for tape stk_40-conf2-000018...
amfetchdump: slot 32: date 20070630 label stk_40-conf2-000018 (exact label
match)
Scanning stk_40-conf2-000018 (slot 32)
amfetchdump: 1: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 3/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 2: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 4/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 3: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 5/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 4: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 6/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 5: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 7/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 6: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 8/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 7: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 9/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 8: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 10/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 9: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 11/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 10: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 12/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 11: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 13/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: error reading file header: No space left on device
amfetchdump: Search of stk_40-conf2-000018 complete
Label mismatch, got stk_40-conf2-000018 and expected stk_40-conf2-000019
Looking for tape stk_40-conf2-000019...
amfetchdump: slot 33: date 20070630 label stk_40-conf2-000019 (exact label
match)
Scanning stk_40-conf2-000019 (slot 33)
amfetchdump: 1: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 14/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 2: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 15/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 3: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 16/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 4: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 17/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 5: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 18/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 6: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 19/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 7: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 20/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 8: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 21/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 9: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 22/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 10: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 23/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 11: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 24/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: Search of stk_40-conf2-000019 complete
Label mismatch, got stk_40-conf2-000019 and expected stk_40-conf2-000020
Looking for tape stk_40-conf2-000020...
amfetchdump: slot 39: date 20070630 label stk_40-conf2-000020 (exact label
match)
Scanning stk_40-conf2-000020 (slot 39)
amfetchdump: 1: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 25/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 2: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 26/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 3: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 27/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 4: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 28/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 5: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 29/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 6: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 30/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 7: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 31/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 8: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 32/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 9: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 33/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 10: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 34/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: Search of stk_40-conf2-000020 complete
Label mismatch, got stk_40-conf2-000020 and expected stk_40-conf2-000014
Looking for tape stk_40-conf2-000014...
amfetchdump: slot 40: date 20070630 label stk_40-conf2-000014 (exact label
match)
Scanning stk_40-conf2-000014 (slot 40)
amfetchdump: 1: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 35/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 2: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 36/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 3: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 37/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 4: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 38/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 5: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 39/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 6: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 40/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 7: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 41/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 8: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 42/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 9: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 43/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 10: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 44/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: Search of stk_40-conf2-000014 complete
Label mismatch, got stk_40-conf2-000014 and expected stk_40-conf2-000015
Looking for tape stk_40-conf2-000015...
amfetchdump: slot 21: date 20070630 label stk_40-conf2-000015 (exact label
match)
Scanning stk_40-conf2-000015 (slot 21)
amfetchdump: 1: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 45/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 2: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 46/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 3: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 47/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 4: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 48/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 5: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 49/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 6: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 50/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 7: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 51/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 8: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 52/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 9: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 53/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 10: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 54/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: Search of stk_40-conf2-000015 complete
Label mismatch, got stk_40-conf2-000015 and expected stk_40-conf2-000001
Looking for tape stk_40-conf2-000001...
amfetchdump: slot 22: date 20070630 label stk_40-conf2-000001 (exact label
match)
Scanning stk_40-conf2-000001 (slot 22)
amfetchdump: 1: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 55/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: 2: restoring split dumpfile: date 20070630 host yorick disk
/data/ipl/ipl10 part 56/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
amfetchdump: Search of stk_40-conf2-000001 complete
>
> Jean-Louis
>
> Jean-Francois Malouin wrote:
> >* Jean-Francois Malouin <Jean-Francois.Malouin AT bic.mni.mcgill DOT ca>
> >[20070705 16:05]:
> >
> >>Hold on to answer this one Jean-Louis.
> >>I think I've found the problem and I'm
> >>doing a amfetchdump run and it went
> >>through the first tape and resumed the
> >>restore with the second tape.
> >>I'll post later when it completes.
> >>
> >
> >OK here it goes: I had somehow 2 config recompiled most probably
> >without doing a 'make distclean' between the configure. The hint
> >was that the debug files for this one were not located in
> >the right place and once I found them I realized that amfetchdump
> >could not find the chg-zd-mtx script.
> >
> >The amfetchdump debug file (in /tmp/amanda-spantest/server/stk_80-conf2
> >it should have been /tmp/amanda-conf2/server/stk_80-conf2):
> >
> >...
> >search_tapes(prompt_out=2, prompt_in=0, use_changer=1, tapelist=100873f8,
> >match_list=10025758, flags=10016550, features=0)
> ><error> could not exec "/opt/amanda/spantest/libexec/chg-zd-mtx": No such
> >file or directory
> >changer: got exit: 1 str: <error> could not read result from
> >"/opt/amanda/spantest/libexec/chg-zd-mtx"
> >num_entries(tapelist=100873f8)=7
> ><error> could not exec "/opt/amanda/spantest/libexec/chg-zd-mtx": No such
> >file o r directory
> >changer: got exit: 1 str: <error> could not read result from
> >"/opt/amanda/spantest/libexec/chg-zd-mtx"
> >
> >
> >So I recompiled making sure to start with a clean slate and now I get:
> >
> >
> ># /opt/amanda/amanda2/sbin/amfetchdump -p -a stk_80-conf2 \
> >yorick /data/ipl/ipl10 20070630 | /usr/freeware/bin/tar -xpf -
> >7 tape(s) needed for restoration
> >cc
> >dd (null)
> >The following tapes are needed: stk_40-conf2-000017 stk_40-conf2-000018
> >stk_40-conf2-000019 stk_40-conf2-000020 stk_40-conf2-000014
> >stk_40-conf2-000015 stk_40-conf2-000001
> >ee (null)
> >ff /hw/tape/tps22d2nrnsv
> >gg /hw/tape/tps22d2nrnsv
> >Label mismatch, got stk_40-conf2-000018 and expected stk_40-conf2-000017
> >hh /hw/tape/tps22d2nrnsv
> >Looking for tape stk_40-conf2-000017...
> >amfetchdump: slot 26: date 20070630 label stk_40-conf2-000017 (exact label
> >match)
> >ii /hw/tape/tps22d2nrnsv
> >Scanning stk_40-conf2-000017 (slot 26)
> >amfetchdump: 14: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 1/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: 15: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 2/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: Search of stk_40-conf2-000017 complete
> >gg /hw/tape/tps22d2nrnsv
> >Label mismatch, got stk_40-conf2-000017 and expected stk_40-conf2-000018
> >hh /hw/tape/tps22d2nrnsv
> >Looking for tape stk_40-conf2-000018...
> >amfetchdump: slot 28: date 20070630 label stk_40-conf2-000018 (exact label
> >match)
> >ii /hw/tape/tps22d2nrnsv
> >Scanning stk_40-conf2-000018 (slot 28)
> >amfetchdump: 1: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 3/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: 2: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 4/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: 3: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 5/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: 4: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 6/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: 5: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 7/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: 6: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 8/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: 7: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 9/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: 8: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 10/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: 9: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 11/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: 10: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 12/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: 11: restoring split dumpfile: date 20070630 host yorick disk
> >/data/ipl/ipl10 part 13/UNKNOWN lev 0 comp N program /usr/freeware/bin/tar
> >amfetchdump: error reading file header: No space left on device
> >amfetchdump: Search of stk_40-conf2-000018 complete
> >
> >/usr/freeware/bin/tar: Unexpected EOF in archive
> >/usr/freeware/bin/tar: Unexpected EOF in archive
> >
> >/usr/freeware/bin/tar: Error is not recoverable: exiting now
> >
> >amfetchdump.*.debug attached.
> >
> >jf
> >
> >
> >------------------------------------------------------------------------
> >
> >amfetchdump: debug 1 pid 55243191 ruid 0 euid 0: start at Thu Jul 5
> >16:53:09 2007
> >amfetchdump: debug 1 pid 55243191 ruid 666 euid 666: rename at Thu Jul 5
> >16:53:09 2007
> >append_to_tapelist(tapelist=0, label='stk_40-conf2-000017', , file=15,
> >isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000017', ,
> >file=14, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000018', ,
> >file=11, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000018', ,
> >file=10, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000018', ,
> >file=9, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000018', ,
> >file=8, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000018', ,
> >file=7, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000018', ,
> >file=6, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000018', ,
> >file=5, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000018', ,
> >file=4, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000018', ,
> >file=3, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000018', ,
> >file=2, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000018', ,
> >file=1, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000019', ,
> >file=11, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000019', ,
> >file=10, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000019', ,
> >file=9, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000019', ,
> >file=8, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000019', ,
> >file=7, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000019', ,
> >file=6, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000019', ,
> >file=5, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000019', ,
> >file=4, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000019', ,
> >file=3, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000019', ,
> >file=2, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000019', ,
> >file=1, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000020', ,
> >file=10, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000020', ,
> >file=9, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000020', ,
> >file=8, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000020', ,
> >file=7, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000020', ,
> >file=6, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000020', ,
> >file=5, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000020', ,
> >file=4, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000020', ,
> >file=3, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000020', ,
> >file=2, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000020', ,
> >file=1, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000014', ,
> >file=10, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000014', ,
> >file=9, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000014', ,
> >file=8, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000014', ,
> >file=7, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000014', ,
> >file=6, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000014', ,
> >file=5, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000014', ,
> >file=4, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000014', ,
> >file=3, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000014', ,
> >file=2, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000014', ,
> >file=1, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000015', ,
> >file=10, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000015', ,
> >file=9, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000015', ,
> >file=8, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000015', ,
> >file=7, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000015', ,
> >file=6, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000015', ,
> >file=5, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000015', ,
> >file=4, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000015', ,
> >file=3, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000015', ,
> >file=2, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000015', ,
> >file=1, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000001', ,
> >file=2, isafile=0)
> >append_to_tapelist(tapelist=10089998, label='stk_40-conf2-000001', ,
> >file=1, isafile=0)
> >search_tapes(prompt_out=2, prompt_in=0, use_changer=1, tapelist=10089998,
> >match_list=10025788, flags=10016570, features=0)
> >num_entries(tapelist=10089998)=7
> >changer_query: changer return was 20 1 1
> >changer_query: searchable = 1
> >changer_find: looking for stk_40-conf2-000017 changer is searchable = 1
> >changer_search: stk_40-conf2-000017
> >search_a_tape: desired_tape=10089998 label=stk_40-conf2-000017
> >tape: numfiles = 2
> >tape: files[0] = 14
> >tape: files[1] = 15
> >current tapefile_idx = 0
> >changer_query: changer return was 20 1 1
> >changer_query: searchable = 1
> >changer_find: looking for stk_40-conf2-000018 changer is searchable = 1
> >changer_search: stk_40-conf2-000018
> >search_a_tape: desired_tape=10088920 label=stk_40-conf2-000018
> >tape: numfiles = 11
> >tape: files[0] = 1
> >tape: files[1] = 2
> >tape: files[2] = 3
> >tape: files[3] = 4
> >tape: files[4] = 5
> >tape: files[5] = 6
> >tape: files[6] = 7
> >tape: files[7] = 8
> >tape: files[8] = 9
> >tape: files[9] = 10
> >tape: files[10] = 11
> >current tapefile_idx = 0
> >
>
> diff -u -r --show-c-function --new-file
> --exclude-from=/home/martinea/src.orig/amanda.diff
> --ignore-matching-lines='$Id:' amanda-2.5.2p1.orig/restore-src/amrestore.c
> amanda-2.5.2p1.restore/restore-src/amrestore.c
> --- amanda-2.5.2p1.orig/restore-src/amrestore.c 2007-05-04
> 07:39:06.000000000 -0400
> +++ amanda-2.5.2p1.restore/restore-src/amrestore.c 2007-07-06
> 08:09:09.000000000 -0400
> @@ -400,21 +401,6 @@ main(
> if(isafile) {
> close(tapedev);
> } else {
> - /*
> - * See the notes above about advancing to the next file.
> - */
> - if(read_result == 0) {
> - tapefd_close(tapedev);
> - if((tapedev = tape_open(tapename, 0)) < 0) {
> - error("could not open %s: %s", tapename, strerror(errno));
> - /*NOTREACHED*/
> - }
> - } else {
> - if(tapefd_fsf(tapedev, (off_t)1) < 0) {
> - error("could not fsf %s: %s", tapename, strerror(errno));
> - /*NOTREACHED*/
> - }
> - }
> tapefd_close(tapedev);
> }
>
> Binary files
> amanda-2.5.2p1.orig/restore-src/kdc.localdomain._boot.20070705073106.0.001
> and
> amanda-2.5.2p1.restore/restore-src/kdc.localdomain._boot.20070705073106.0.001
> differ
> diff -u -r --show-c-function --new-file
> --exclude-from=/home/martinea/src.orig/amanda.diff
> --ignore-matching-lines='$Id:' amanda-2.5.2p1.orig/restore-src/restore.c
> amanda-2.5.2p1.restore/restore-src/restore.c
> --- amanda-2.5.2p1.orig/restore-src/restore.c 2007-06-06 19:19:20.000000000
> -0400
> +++ amanda-2.5.2p1.restore/restore-src/restore.c 2007-07-06
> 08:02:06.000000000 -0400
> @@ -1550,6 +1550,7 @@ search_a_tape(
> send_message(prompt_out, flags, their_features,
> "could not open %s: %s",
> cur_tapedev, strerror(errno));
> + break;
> error("could not open %s: %s",
> cur_tapedev, strerror(errno));
> /*NOTREACHED*/
> @@ -1561,6 +1562,7 @@ search_a_tape(
> send_message(prompt_out, flags, their_features,
> "Could not fsf device %s: %s",
> cur_tapedev, strerror(errno));
> + break;
> error("Could not fsf device %s: %s",
> cur_tapedev, strerror(errno));
> /*NOTREACHED*/
> @@ -1577,6 +1579,7 @@ search_a_tape(
> OFF_T_FMT ": %s",
> cur_tapedev, (OFF_T_FMT_TYPE)fsf_by,
> strerror(errno));
> + break;
> error("Could not fsf device %s by " OFF_T_FMT ": %s",
> cur_tapedev, (OFF_T_FMT_TYPE)fsf_by,
> strerror(errno));
> @@ -1592,6 +1595,8 @@ search_a_tape(
> if(isafile)
> break;
> *read_result = read_file_header(file, tapefd, isafile, flags);
> + if (file->type == F_UNKNOWN)
> + break;
>
> /* only restore a single dump, if piping to stdout */
> if (!headers_equal(prev_rst_file, file, 1) &&
> @@ -1600,29 +1605,11 @@ search_a_tape(
> }
> } /* while we keep seeing headers */
>
> - if (!isafile) {
> - if (file->type == F_EMPTY) {
> - aclose(tapefd);
> - if((tapefd = tape_open(cur_tapedev, 0)) < 0) {
> - send_message(prompt_out, flags, their_features,
> - "could not open %s: %s",
> - cur_tapedev, strerror(errno));
> - error("could not open %s: %s",
> - cur_tapedev, strerror(errno));
> - /*NOTREACHED*/
> - }
> - } else {
> - if (tapefd_fsf(tapefd, (off_t)1) < 0) {
> - send_message(prompt_out, flags, their_features,
> - "could not fsf %s: %s",
> - cur_tapedev, strerror(errno));;
> - error("could not fsf %s: %s",
> - cur_tapedev, strerror(errno));
> - /*NOTREACHED*/
> - }
> - }
> + if (isafile) {
> + close(tapefd);
> + } else {
> + tapefd_close(tapefd);
> }
> - tapefd_close(tapefd);
>
> /* spit out our accumulated list of dumps, if we're inventorying */
> if (logstream) {
> @@ -1924,7 +1911,8 @@ search_tapes(
> if (desired_tape) desired_tape = desired_tape->next;
>
> /* only restore a single dump, if piping to stdout */
> - if (!headers_equal(&prev_rst_file, &file, 1) &&
> + if (file.type != F_UNKNOWN &&
> + !headers_equal(&prev_rst_file, &file, 1) &&
> flags->pipe_to_fd == fileno(stdout))
> break;
>
--
<° ><
|