From owner-freebsd-chat Tue May 11 14: 8:10 1999 Delivered-To: freebsd-chat@freebsd.org Received: from cygnus.rush.net (cygnus.rush.net [209.45.245.133]) by hub.freebsd.org (Postfix) with ESMTP id 1CB3B150DD for ; Tue, 11 May 1999 14:07:57 -0700 (PDT) (envelope-from bright@rush.net) Received: from localhost (bright@localhost) by cygnus.rush.net (8.9.3/8.9.3) with SMTP id QAA26800; Tue, 11 May 1999 16:30:33 -0500 (EST) Date: Tue, 11 May 1999 16:30:31 -0500 (EST) From: Alfred Perlstein To: Dag-Erling Smorgrav Cc: chat@FreeBSD.ORG Subject: Re: [Re: Request For Better Communications] In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-chat@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On 11 May 1999, Dag-Erling Smorgrav wrote: > writes: > > Apache's pool memory seems like a good example, in case anyone cares :) > > It's a good concept, but Apache's implementation of it is very poor - > it leaks like a sieve, and is responsible for making the Sioux DoS > possible. (I offered them patches, which they ignored.) And it's not > real GC - you have to explicitly release a pool to discard the objects > within it, and when you do, *all* objects are discarded, even if > they're still referenced. It works for Apache because they have a lot > of stuff which is transaction-bound - i.e. buffers for reading request > headers, file descriptors to the document or CGI requested, etc., > which can be discarded all in one go. Also, it does more than just GC > since it closes files and sockets does some other cleanup stuff. It's not even garbage collection, just resource tracking, the kind of resource tracking you do when you have a very compolex program with memory leaks and a upcoming deadline. you hack in a malloc replacement, and when certain states of your program is complete you free that pool. nasty, slow and ick.... but then you just have to verify your malloc tracker rather than the whole program. -Alfred To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message