From owner-freebsd-current Wed Jan 20 11:23:58 1999 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id LAA06803 for freebsd-current-outgoing; Wed, 20 Jan 1999 11:23:58 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from apollo.backplane.com (apollo.backplane.com [209.157.86.2]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id LAA06798 for ; Wed, 20 Jan 1999 11:23:57 -0800 (PST) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.2/8.9.1) id LAA05838; Wed, 20 Jan 1999 11:23:41 -0800 (PST) (envelope-from dillon) Date: Wed, 20 Jan 1999 11:23:41 -0800 (PST) From: Matthew Dillon Message-Id: <199901201923.LAA05838@apollo.backplane.com> To: Bjoern Fischer Cc: current@FreeBSD.ORG Subject: Re: panic: vinvalbuf: dirty bufs (during reboot, several times) References: <19990120073445.A402@titan.klemm.gtn.com> <199901200700.XAA76802@apollo.backplane.com> <19990120132700.A15521@voliere.TechFak.Uni-Bielefeld.DE> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG :ok, here are some instructions which -- I hope -- reproduce it :(I haven't found a *nice* way; this is the ridiculous way): : :NFS server and client are completely 3.0-CURRENT :(of CTM src-cur.3712.gz) with Luoqi's NFS fix. The server has all :(physical) file systems mounted with softupdates except `/'. : :On the client simply edit `http://www.freebsd.org/~yokota/sc_update.txt' :... :After the vi-SEGV try to shutdown the server with `shutdown -[rh] now'. :You may shutdown the client first -- it makes no difference. :Then you will get the panic. : :Good luck. : : Bjoern Good work! I can repeat the SEGV fault. The SEGV is being caused by a bug in NFS which I haven't tracked down yet, but basically what happens is that vi tries to create a recovery file and uses lseek() to skip around a little, then seek's back and reads something it just wrote. Over NFS, this blew up -- it didn't read what it wrote. cc x.c -o x cd somewhere ( into NFS partition on NFS client ) ./x | hexdump cd localfilesystem /path/x | hexdump I do not know if this related to the non-NFS panic. When I find the bug, we'll know better. This should be easy. -Matt #include #include #include #include char buf[4096]; int main(int ac, char **av) { int fd = open("test", O_RDWR|O_CREAT|O_TRUNC, 0666); int n; memset(buf, 1, 4096); write(fd, buf, 1024); lseek(fd, 0x800, 0); write(fd, buf, 1024); lseek(fd, 0xC00, 0); write(fd, buf, 1024); lseek(fd, 0x1000, 0); write(fd, buf, 1024); lseek(fd, 0x1400, 0); write(fd, buf, 1024); lseek(fd, 0x1800, 0); write(fd, buf, 1024); lseek(fd, 0x800, 0); read(fd, buf, 1024); write(1, buf, 1024); return(0); } To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message