httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@lnd.com>
Subject RE: Review then commit.
Date Mon, 29 May 2000 23:33:41 GMT
Ok... since this is (now) the STATUS discussion thread :-)

I have what I believe are two showstoppers.

One is specific to the WinNT MPM, but others beware, they
may suffer from the same fate!

The top pool (pconf) passed to the MPM is perm only between 
restarts.  The WinNT MPM abused this pool to presume it would
live for the duration of execution, and may have dropped
some stuff in there that can't be so volitale.  I'll know
more before I commit the services patch, but all MPM coders
should be aware of this kind of abuse.  You can steal the
process->pool from the rewrite_args hook, but that's the
only pool that lives across restarts unless the MPM has
created it's own.

The second issue is a thorough review of exit();  We are
abusing this all over the place, in modules, in apr, and
wherever.

The only place we should perform a die(); is in the case
of memory allocation failure, and even that may not be
fatal enough not to unwind the critical processes (MPMs.)

I'd like to see a well implemented ap_server_fault() and
ap_server_quit(), the former doing an unwind of the proc
that must not rely on memory or resource allocation, the
other doing a clean exit.  But even at that, we shouldn't
be quitting from everywhere.

We have ap to ap_terminate, pools to purge, cleanups to
call, I just don't like the state of stability here.

Bill

Mime
View raw message