Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 07 Jun 2001 08:07:59 +0200
From:      Tor.Egge@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?
Message-ID:  <200106070607.IAA67023@midten.fast.no>
In-Reply-To: Your message of "Tue, 5 Jun 2001 20:09:14 %2B0000 (GMT)"
References:  <200106052010.NAA29251@usr01.primenet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
----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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200106070607.IAA67023>