Subject: Re: find uses 400MB memory
To: Simon Burge <simonb@wasabisystems.com>
From: Chuck Silvers <chuq@chuq.com>
List: current-users
Date: 09/14/2001 08:29:04
hi,

we should really figure out how to make execvp() avoid using malloc()
rather than working around the problem in applications.  vfork() and
execvp() is a natural combination, having them not work together is
pretty suboptimal.

we should be able to use some variable-length arrays to deal with this.

-Chuck


On Fri, Sep 14, 2001 at 06:20:54PM +1000, Simon Burge wrote:
> Simon Burge wrote:
> 
> > Kazushi Marukawa wrote:
> > 
> > > That's true.  I did quick check by "find . -type f -print"
> > > on the same disk and it didn't use memory so much.  Sorry
> > > for doubting fts.  I should check -print first.  Thank you
> > > for the correction.
> > 
> > dmalloc (look in pkgsrc/devel/dmalloc) shows 26 lines like:
> > 
> > 	1000452103: 113:  not freed: '0x8096208|s3' (160 bytes) from 'ra=0x480cf1c9'
> > 
> > when "find . -type f -exec ls \;" is run on a directory with 26 files :(
> > I haven't looked any further than this yet.
> 
> I've committed a fix for this - look for rev 1.36 of
> usr.bin/find/function.c.  Basically, vfork() and execvp() don't mix.
> I'm looking for other occurances of this in our source tree.
> 
> Simon.
> --
> Simon Burge                            <simonb@wasabisystems.com>
> NetBSD CDs, Support and Service:    http://www.wasabisystems.com/