From owner-freebsd-current Wed Jun 6 23: 8:42 2001 Delivered-To: freebsd-current@freebsd.org Received: from midten.fast.no (midten.fast.no [213.188.8.11]) by hub.freebsd.org (Postfix) with ESMTP id B0F4A37B401 for ; Wed, 6 Jun 2001 23:08:32 -0700 (PDT) (envelope-from Tor.Egge@fast.no) Received: from fast.no (IDENT:tegge@midten.fast.no [213.188.8.11]) by midten.fast.no (8.9.3/8.9.3) with ESMTP id IAA67023; Thu, 7 Jun 2001 08:07:59 +0200 (CEST) Message-Id: <200106070607.IAA67023@midten.fast.no> To: tlambert@primenet.com Cc: current@FreeBSD.ORG, mjacob@feral.com Subject: Re: anyone seen these outside of alpha? or on non-SMP? From: Tor.Egge@fast.no In-Reply-To: Your message of "Tue, 5 Jun 2001 20:09:14 +0000 (GMT)" References: <200106052010.NAA29251@usr01.primenet.com> X-Mailer: Mew version 1.70 on Emacs 19.34.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Jun__7_08:06:24_2001)--" Content-Transfer-Encoding: 7bit Date: Thu, 07 Jun 2001 08:07:59 +0200 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG ----Next_Part(Thu_Jun__7_08:06:24_2001)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit > My guess would be that the inode in question is a directory inode, > and that there are temp files there, or a lot of open files, but > that is just a ballpark guess. Correct. A sample program to reproduce this problem is enclosed. When a diradd dependency that causes a newdirblk dependency to be allocated is made obsolete in newdirrem(), the pagedep structure is likely to be freed without first removing the newdirblk dependency that still points to the pagedep structure. - Tor Egge ----Next_Part(Thu_Jun__7_08:06:24_2001)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit #!/bin/sh dovmstat() { vmstat -m | awk '/^ *(mkdir|newdirblk|dirrem|diradd|pagedep)/ { print }' } dovmstat rm -rf a dirrems=`vmstat -m | awk '/^ *dirrem/ { print $2 }'` while test $dirrems -gt 0 do sync sleep 1 dirrems=`vmstat -m | awk '/^ *dirrem/ { print $2 }'` done mkdir a mkdirs=`vmstat -m | awk '/^ *mkdir/ { print $2 }'` while test $mkdirs -gt 0 do sync sleep 1 mkdirs=`vmstat -m | awk '/^ *mkdir/ { print $2 }'` done dovmstat touch a/0000000000000000000000000000000000000000000000000000000 dovmstat touch a/0000000000000000000000000000000000000000000000000000001 dovmstat touch a/0000000000000000000000000000000000000000000000000000002 dovmstat touch a/0000000000000000000000000000000000000000000000000000003 dovmstat touch a/0000000000000000000000000000000000000000000000000000004 dovmstat touch a/0000000000000000000000000000000000000000000000000000005 dovmstat touch a/0000000000000000000000000000000000000000000000000000006 dovmstat touch a/0000000000000000000000000000000000000000000000000000007 dovmstat touch a/0000000000000000000000000000000000000000000000000000007 dovmstat touch a/0000000000000000000000000000000000000000000000000000008 dovmstat touch a/0000000000000000000000000000000000000000000000000000009 dovmstat touch a/000000000000000000000000000000000000000000000000000000a dovmstat touch a/000000000000000000000000000000000000000000000000000000b dovmstat touch a/000000000000000000000000000000000000000000000000000000c dovmstat touch a/000000000000000000000000000000000000000000000000000000d dovmstat touch a/000000000000000000000000000000000000000000000000000000e dovmstat touch a/000000000000000000000000000000000000000000000000000000f dovmstat rm a/000000000000000000000000000000000000000000000000000000f dovmstat ls -ld a dovmstat rm -rf a dovmstat echo FINISHED ----Next_Part(Thu_Jun__7_08:06:24_2001)---- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message