STATUS revision 3304cbd819df02e7548e9338dc0afa8d3ba29358
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsyncApache 2.0 STATUS:
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsyncLast modified at [$Date: 1999/12/22 06:20:11 $]
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsyncRelease:
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Vague plan, assuming more features aren't demanded for the 2.0 release
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync 2.0a1/b1: January 2000
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync 2.0 : later in 2000
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsyncRELEASE SHOWSTOPPERS:
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Complete HAVE_SENDFILE work. Need to add iovec head and tail pointers to
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync the iol sendfile API and make it work under Unix.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: Bill <stoddard@raleigh.ibm.com> is working on this
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Pipes to CGI scripts are not being timed out
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: code has been added to APR to support timing out pipes.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync This needs to be used in Apache now.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Put back resource limit code
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Port mod_rewrite
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: Paul Reder <rederpj@raleigh.ibm.com> is working on this.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * suEXEC doesn't work
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: Manoj has posted an patch to fix this.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync <19991103003605.A20612@samosa.mindspring.com>
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Windows NT port isn't done
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: Bill <stoddard@raleigh.ibm.com> is working on MPM and APR.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Remaining work:
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync 1. Add back ability to run Apache as a service
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync 2. Fix Win9* specific code in the winnt MPM
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync 3. Test access logging with multiple threads. Will the native file I/O
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync calls serialize automagically like the CRT calls or do we need to
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync add region locking each time we write to the access/error logs?
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync 4. Fix the DOS hole in AcceptEx (need to time out connections over
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync which data is never sent).
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Current 2.0 code is not tested on many Unix platforms. Make 2.0
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync work on most, if not all the systems 1.3 did
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: Autoconf and APR will get us most of the way there.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * The module API is a weird combination of the old table and the new
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync hook system. Switch completely to the new hook system
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: Ben Laurie is working on this.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Modules. Which modules do not work yet, can we get a list?
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * We need a thread-safe resolver, at least on Unix.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: The best known candidate would be something from BIND
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync (v8 or v9?) The only other option would be to mutex all the
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync resolver calls,
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsyncRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
5606210c3e3213a247418d91961ef5380fc87640vboxsync * Clean the code. There are a lot of places we used APR but didn't
5606210c3e3213a247418d91961ef5380fc87640vboxsync remove the hacks that were required for the cross-platform code in
5606210c3e3213a247418d91961ef5380fc87640vboxsync 1.3. We need to make the code look like APR was supposed to be there.
5606210c3e3213a247418d91961ef5380fc87640vboxsync
5606210c3e3213a247418d91961ef5380fc87640vboxsync * Go throught the Bug DB and research the bugs marked "suspended". People
5606210c3e3213a247418d91961ef5380fc87640vboxsync were told these would be considered for inclusion in Apache 2.0, it
5606210c3e3213a247418d91961ef5380fc87640vboxsync would be nice to actually do so.
5606210c3e3213a247418d91961ef5380fc87640vboxsync
5606210c3e3213a247418d91961ef5380fc87640vboxsync * Win32: Migrate the MPM over to use APR thread/process calls. This
5606210c3e3213a247418d91961ef5380fc87640vboxsync would eliminate some code in the Win32 branch that essentially
5606210c3e3213a247418d91961ef5380fc87640vboxsync duplicates what is in APR.
5606210c3e3213a247418d91961ef5380fc87640vboxsync Status: Bill <stoddard@raleigh.ibm.com> is working on this.
5606210c3e3213a247418d91961ef5380fc87640vboxsync
5606210c3e3213a247418d91961ef5380fc87640vboxsync * Move I/O layering into APR.
5606210c3e3213a247418d91961ef5380fc87640vboxsync
5606210c3e3213a247418d91961ef5380fc87640vboxsync * There are still a number of places in the code where we are
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync loosing error status (i.e. throwing away the error returned by a
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync system call and replacing it with a generic error code)
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * APRize the stat function. CRT stat() is about 30% slower on Windows than
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync the equivalent native Windows call. The APR call should return the Unix
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync style stat structure, just to keep it familier.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Implement reliable piped logs on Windows
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: Bill <stoddard@raleigh.ibm.com> has prototype code (not
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync reliable) in 1.3. Should be much cleaner with APR in 2.0.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Switch to autoconf, et al. for configuration.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: Manoj has placed an initial version into the 2.0
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync repository. Todos include:
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync - "make install" should work
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync - a tool to simplfy third-party module building should be
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync written. Something like apxs
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync - Add a lot more checks to satisfy the various platforms, e.g.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync for threading
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Use APR to get rid of more platform dependancies.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: Ryan Bloom <rbb@raleigh.ibm.com> is working on this.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * The connection status table is not very efficient. Also, very few stats
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync are exported to the connection status table (easy to fix), and mod_status
5606210c3e3213a247418d91961ef5380fc87640vboxsync is ugly.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsyncOther bugs that need fixing:
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * MaxRequestsPerChild measures connections, not requests.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Until someone has a better way, we'll probably just rename it
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync "MaxConnectionsPerChild".
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Regex containers don't work in an intutive way
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: No one has come up with an efficient way to fix this
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync behavior. Dean has suggested getting rid of regex containers
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync completely.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync sigwaiting thread. We need to work around this, perhaps unless
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync there is hope soon for a fixed glibc.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsyncOther features that need writing:
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Finish infrastructure in core for async MPMs
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: ?
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * TODO in source -- just do an egrep on "TODO" and see what's there
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * Work on other MPMs. Possible MPMs discussed or in progress include:
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync - Dean Gaudet's async MPM
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: dean is unlikely to begin work on this any time soon...
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync has lots of ideas he'll share with folks willing to begin
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync tackling the issues. this is apache 2.1 material.
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync - Zach Brown's <zab@zabbo.net> Linux siginfo MPM
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: ?
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsyncDocumentation that needs writing:
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * The concept of MPMs, especially if we ship more than one MPM for a
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync given platform
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * New directives in the various MPMs
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync * API documentation
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync Status: Ben Laurie has written some hooks documentation
9e0b97c99123f5eb89a851ce0182f7e438000c0dvboxsync (apache-2.0/htdocs/hooks.html)
* Changes since 1.3.9 can be more easily seen in the commitlog file
dev.apache.org:/home/cvs/CVSROOT/commitlogs/apache-2.0
which includes some of Roy's comments when the changes were
committed in rough change-sets by purpose. Note that the commitlog
does not show the contents of new files until later.
Available Patches:
* Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
performance
Status: These were written for 1.3, and are awaiting a port to
2.0
Open issues:
* What do we do about mod_proxy?
* Which MPMs will be included with Apache 2.0?
* Is conf/highperformance.conf-dist obsolete? It looks obsolete.