From owner-freebsd-bugs@FreeBSD.ORG Wed Feb 20 13:00:05 2008 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 44D6116A40A for ; Wed, 20 Feb 2008 13:00:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 1FD2A13C4F6 for ; Wed, 20 Feb 2008 13:00:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m1KD05gk016818 for ; Wed, 20 Feb 2008 13:00:05 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m1KD05dR016817; Wed, 20 Feb 2008 13:00:05 GMT (envelope-from gnats) Resent-Date: Wed, 20 Feb 2008 13:00:05 GMT Resent-Message-Id: <200802201300.m1KD05dR016817@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Diomidis Spinellis Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA35716A402 for ; Wed, 20 Feb 2008 12:56:18 +0000 (UTC) (envelope-from dds@icarian.dmst.aueb.gr) Received: from icarian.dmst.aueb.gr (icarian.dmst.aueb.gr [195.251.249.166]) by mx1.freebsd.org (Postfix) with ESMTP id 3D12213C4E9 for ; Wed, 20 Feb 2008 12:56:17 +0000 (UTC) (envelope-from dds@icarian.dmst.aueb.gr) Received: from icarian.dmst.aueb.gr (localhost [127.0.0.1]) by icarian.dmst.aueb.gr (8.14.2/8.14.2) with ESMTP id m1KCuGNS022014 for ; Wed, 20 Feb 2008 14:56:16 +0200 (EET) (envelope-from dds@icarian.dmst.aueb.gr) Received: (from dds@localhost) by icarian.dmst.aueb.gr (8.14.2/8.14.2/Submit) id m1KCuGmc022013; Wed, 20 Feb 2008 14:56:16 +0200 (EET) (envelope-from dds) Message-Id: <200802201256.m1KCuGmc022013@icarian.dmst.aueb.gr> Date: Wed, 20 Feb 2008 14:56:16 +0200 (EET) From: Diomidis Spinellis To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: bin/120881: 4.11 dumps cause restore to panic with "lost data" X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Diomidis Spinellis List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Feb 2008 13:00:05 -0000 >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: