From owner-freebsd-i386@FreeBSD.ORG Wed Sep 5 05:49:15 2007 Return-Path: Delivered-To: freebsd-i386@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 13B3616A417; Wed, 5 Sep 2007 05:49:15 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail07.syd.optusnet.com.au (mail07.syd.optusnet.com.au [211.29.132.188]) by mx1.freebsd.org (Postfix) with ESMTP id A4EDA13C458; Wed, 5 Sep 2007 05:49:14 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from besplex.bde.org (c220-239-235-248.carlnfd3.nsw.optusnet.com.au [220.239.235.248]) by mail07.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id l855lnO4020801 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 5 Sep 2007 15:48:09 +1000 Date: Wed, 5 Sep 2007 15:47:49 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Dmitry Andrianov <666.root@gmail.com> In-Reply-To: <200709050121.l851LfrY056952@www.freebsd.org> Message-ID: <20070905153535.F4195@besplex.bde.org> References: <200709050121.l851LfrY056952@www.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: freebsd-gnats-submit@FreeBSD.org, freebsd-i386@FreeBSD.org Subject: Re: i386/116100: Fatal trap 12 right after reboot (da0s1error = 6) X-BeenThere: freebsd-i386@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: I386-specific issues for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Sep 2007 05:49:15 -0000 On Wed, 5 Sep 2007, Dmitry Andrianov wrote: >> Environment: > 7.0-CURRENT-200704 FreeBSD 7.0-CURRENT-200704 #0: Sun Apr 1 14:46:54 UTC 2007 root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386 This is old, so not broken by me :-). >> Description: > bash-2.05b#mount -t msdosfs /dev/da0s1 /mnt > bash-2.05b# > .. > bash-2.05b#reboot > > <118>Sep 3 18:54:08 zingel reboot: rebooted by root > <118>Sep 3 18:54:08 zingel syslogd: exiting on signal 15 > Waiting (max 60 seconds) for system process `vnlru' to stop...done > Waiting (max 60 seconds) for system process `bufdaemon' to stop...done > Waiting (max 60 seconds) for system process `syncer' to stop... > Syncing disks, vnodes remaining...1 0 0 0 done > All buffers synced. > g_vfs_done():da0s1[READ(offset=65536, length=4096)]error = 6 An i/o error in unmount is likely to cause problems. The system never gives up trying to write unwriteable buffers, and tends to panic trying to write them later. I recently fixed some panics in unmount (not yet committed), but the fix is to make unmount not fail, and that won't help for reboot because unmount cannot fail. msdosfs and perhaps even ffs normally does a write in unmount _after_ the "All buffers synced" message has been printed. > (da0:dead_sim0:0:0:0): Synchronize cache failed, status == 0x8, scsi status == 0x0 > (da0:dead_sim0:0:0:0): removing device entry Removing a device entry is a wrong thing to do if there is i/o pending on the device. It would work if the i/o is reattached to dead_something, but that apparently isn't done. You need to figure out what caused the i/o error -- is it msdosfs, the disk driver or the disk? Bruce