Skip site navigation (1)Skip section navigation (2)
Date:      Tue,  4 Apr 2000 13:07:07 -0400 (EDT)
From:      cjohnson@camelot.com
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   bin/17791: Restore does not handle bad or missing tapes well.
Message-ID:  <20000404170707.C6F2612C19@galahad.camelot.com>

next in thread | raw e-mail | index | archive | help

>Number:         17791
>Category:       bin
>Synopsis:       Restore does not handle bad or missing tapes well.
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Apr  4 10:10:01 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Christopher T. Johnson
>Release:        FreeBSD 4.0-RELEASE i386
>Organization:
Paladin Software
>Environment:

FreeBSD 4.0-RELEASE with EXABYTE 8200

>Description:

Did full back up of 5GBytes of data onto 4 tapes using dump.
First two tapes are full with no errors.  3rd tape had IO error shortly
into writing.  Dump then asked for 4th tape and completed the dump to that
tape.

On restoring this data, when restore found the IO error on tape 3 it 
did not allow a method for moving on.  Selecting "continue" caused it to
retry over and over again.  Never moving past the error, never generating
an ENOSPACE (End of Tape) error.  When the question is answered "no" the
restore ends.

restore -Rf /dev/rsa0 demanded tape 3 again, it wouldn't let me put tape
4 into the drive.  Modifying /usr/src/sbin/restore/tape.c to make
'R' ask the user for the tape volume number.  This allowed me to move on
to the last tape which then told me about lots of missing files (Lost
on the dump or restore?)  Finally it read the last of tape four and ended
WITHOUT SETTING OWNERS OF PERMISSIONS!

>How-To-Repeat:

see description.

>Fix:

Well, this will get the data in but I don't like it at all.

RCS file: /usr/cvsroot/src/sbin/restore/tape.c,v
retrieving revision 1.16
diff -u -r1.16 tape.c
--- tape.c      1999/08/28 00:14:08     1.16
+++ tape.c      2000/04/03 06:13:57
@@ -315,7 +315,7 @@
 again:
        if (pipein)
                done(1); /* pipes do not get a second chance */
-       if (command == 'R' || command == 'r' || curfile.action != SKIP) {
+       if (command == 'r' || curfile.action != SKIP) {
                newvol = nextvol;
                wantnext = 1;
        } else {



>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000404170707.C6F2612C19>