Date: Wed, 20 Feb 2008 14:56:16 +0200 (EET) From: Diomidis Spinellis <dds@aueb.gr> To: FreeBSD-gnats-submit@FreeBSD.org Subject: bin/120881: 4.11 dumps cause restore to panic with "lost data" Message-ID: <200802201256.m1KCuGmc022013@icarian.dmst.aueb.gr> Resent-Message-ID: <200802201300.m1KD05dR016817@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 120881 >Category: bin >Synopsis: 4.11 dumps cause restore to panic with "lost data" >Confidential: no >Severity: critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Feb 20 13:00:04 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Diomidis Spinellis >Release: FreeBSD 8.0-CURRENT i386 >Organization: AUEB >Environment: System: FreeBSD icarian.dmst.aueb.gr 8.0-CURRENT FreeBSD 8.0-CURRENT #13: Thu Jan 24 14:21:33 EET 2008 dds@icarian.dmst.aueb.gr:/usr/obj/usr/home/dds/src/fbsd-head/src/sys/ICARIAN i386 >Description: Restoring a level-0 dump generated on a 4.11 system with dump -h 0 -au -f - /vol on a CURRENT system with restore -dv -rN -f - causes restore to panic on tape.c line 1025 with curblk having the value of 1. Previous files verify OK. Here is the excerpted output of restore: Verify tape and initialize maps Dump date: Fri Jan 11 21:36:29 2008 Dumped from: the epoch Level 0 dump of /vol on [...]:/dev/ad2c Label: none Begin level 0 restore Initialize symbol table. Extract directories from tape [...] Extract new leaves. Check pointing the restore extract file ./du.out skipping 1 junk block(s) File header, ino 3 extract file ./errors skipping 1 junk block(s) File header, ino 4 extract file ./music/[...] skipping 1 junk block(s) File header, ino 540672 extract file ./music/... File header, ino 540676 File continuation header, ino 540676 [... 16 identical lines] File continuation header, ino 540676 Missing address (header) block for ./[...] at 0 blocks extract file ./music/[...] File header, ino 540677 File continuation header, ino 540677 [... 18 identical lines] File continuation header, ino 540677 Missing address (header) block for ./[...] at 0 blocks getfile: lost data abort? [yn] >How-To-Repeat: See above. The dump in question is 190GB, but I could work on creating a subset, if needed. >Fix: It seems that the culprit is the following sequence in tape.c if (curblk > 0) panic("getfile: lost data\n"); This was introduced in version 1.48 Version 1.44.2.1 of tape.c shipped with FreeBSD 6.2 has a different handler: if (curblk > 0) (*fill)((char *)buf, (long)((curblk * TP_BSIZE) + size)); which doesn't panic. >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200802201256.m1KCuGmc022013>