From owner-freebsd-current Fri Mar 1 12:18:53 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id MAA06256 for current-outgoing; Fri, 1 Mar 1996 12:18:53 -0800 (PST) Received: from zibbi.mikom.csir.co.za (zibbi.mikom.csir.co.za [146.64.24.58]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id MAA06250 for ; Fri, 1 Mar 1996 12:18:39 -0800 (PST) Received: (from jhay@localhost) by zibbi.mikom.csir.co.za (8.6.12/8.6.9) id WAA17044 for freebsd-current@FreeBSD.ORG; Fri, 1 Mar 1996 22:17:58 +0200 From: John Hay Message-Id: <199603012017.WAA17044@zibbi.mikom.csir.co.za> Subject: Re: rename panics kernel To: freebsd-current@FreeBSD.ORG (FreeBSD-current) Date: Fri, 1 Mar 1996 22:17:58 +0200 (SAT) In-Reply-To: X-Mailer: ELM [version 2.4 PL24 ME8b] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-current@FreeBSD.ORG Precedence: bulk > Resently I got a "panic : vrele : negative reference count". > The vrele() was called from rename(). > > I tried a simple script to exercise rename (attached below) and a > current system seems to panic (trapped in ufs_rename). There's a race > condition lurking, it seems. I havent tried other than the sticky /tmp > directory as the source and target files parent directory. Also the > test was run under root's account, if it matters. > > Rename exercise: > ------ > #!/bin/sh > a=/tmp/foo.now > b=/tmp/foo.prev > while true > do > for n in 1 2 3 4 5 6 7 8 9 0 > do > (mv $a $b ; touch $a) & > done > wait > done > ------ > Well I tried this on a -stable machine and one with -current. Both did panic. :-( The -current kernel is a week old. Here is its panic message: Fatal trap 12: page fault while in kernel mode fault virtual address = 0x68 fault code = supervisor read, page not present instruction pointer = 0x8:0xf015ffb9 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, def32 1, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 341 (mv) interrupt mask = panic: page fault f015feb4 t _ufs_chown f015ff78 T _ufs_ioctl f015ff84 T _ufs_select f015ff90 T _ufs_mmap f015ff9c T _ufs_seek f015ffa4 T _ufs_remove f0160028 T _ufs_link f01602b8 T _ufs_rename f0160cf8 T _ufs_mkdir f0160f70 T _ufs_rmdir f01610cc T _ufs_symlink John --- John Hay -- John.Hay@csir.co.za