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>