From owner-freebsd-current Thu Feb 29 15:43:29 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id PAA20271 for current-outgoing; Thu, 29 Feb 1996 15:43:29 -0800 (PST) Received: from snake.hut.fi (root@[193.167.6.99]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id PAA20253 for ; Thu, 29 Feb 1996 15:43:16 -0800 (PST) Received: from lk-hp-20.hut.fi (lk-hp-20.hut.fi [130.233.247.33]) by snake.hut.fi (8.7.3/8.7.3) with ESMTP id BAA29555 for ; Fri, 1 Mar 1996 01:42:13 +0200 (EET) From: Juha Inkari Received: (inkari@localhost) by lk-hp-20.hut.fi (8.6.12/8.6.7) id BAA03741 for freebsd-current@freebsd.org; Fri, 1 Mar 1996 01:42:12 +0200 Message-Id: <199602292342.BAA03741@lk-hp-20.hut.fi> Subject: rename panics To: freebsd-current@freebsd.org Date: Fri, 1 Mar 1996 01:42:11 +5000 (EET) X-Mailer: ELM [version 2.4 PL25] 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 ------