STATUS revision 40a5b7189dbbb28e107bf008ee625f2f0142c2cc
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncApache 2.0 STATUS:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncLast modified at [$Date: 2000/03/02 09:57:28 $]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Vague plan, assuming more features aren't demanded for the 2.0 release
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync 2.0a1 : March 2000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync 2.0 : later in 2000
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRELEASE SHOWSTOPPERS:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Fix SAFEREAD
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Fix lingering close
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MPMs should have responsibility for closing sockets and
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync registering the socket cleanup. Stop registering multiple
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cleanups for each socket. Move socket close code out of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync http_connection.c and into the MPMs.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Reliable piped logs look broken everywhere. Each MPM includes essentially
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync identical code to ap_register_other_child(), etc. Most of this code can
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync be moved out of the MPMs and into some common file (http_core.c?).
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Dean says presumably you mean an os-specific file?
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * DSO hooks registered during the preflight call to ap_read_config
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync are not 'unregistered' during the preflight clean-up. Thus, when
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Apache comes up, the hook tables contain two entries for each DSO hook,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync one of which is bogus, leftover from the preflight.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Pipes to CGI scripts are not being timed out
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: code has been added to APR to support timing out pipes.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync This needs to be used in Apache now.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Put back resource limit code
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * suEXEC doesn't work
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Manoj has posted an patch to fix this.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync <19991103003605.A20612@samosa.mindspring.com>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Enable the Windows MPM to honor max_requests_per_child
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Bill will fix this.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Fix Win9* specific code in the winnt MPM
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Test access logging with multiple threads. Will the
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync native file I/O calls serialize automagically like the
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync CRT calls or do we need to add region locking each time
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync we access the logs?
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Smoke test all ported modules to make sure they work
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync correctly under Windows.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Current 2.0 code is not tested on many Unix platforms. Make 2.0
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync work on most, if not all the systems 1.3 did
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Autoconf and APR will get us most of the way there.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * The module API is a weird combination of the old table and the new
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync hook system. Switch completely to the new hook system
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Ben Laurie is working on this.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Modules. Which modules do not work yet, can we get a list?
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * We need a thread-safe resolver, at least on Unix.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: The best known candidate would be something from BIND
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync (v8 or v9?) The only other option would be to mutex all the
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync resolver calls,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * "make distclean" leaves (at least these) turds:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync modules/.deps
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * apaci permissions problem:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cvs checkout apache-2.0
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ./configure
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync now apaci is no longer executable and future makes fail
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Reuse accept socket after transmitfile/close
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync This is not a bug, but would be nice to get this feature in
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync before ship.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Enable the winnt MPM to use the new scoreboard API
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Non-blocking CGI pipes
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Graceful restart of a service is broken (code does shutdown then start)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Dynamically loadable MPMs
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Enable users of the binary distributions of Apache to be able to
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync dynamically load the MPM.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Dean says this probably isn't a good idea. For example consider
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync -lpthread, you couldn't have the same core run with pthreads,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync prefork, and gnu pth without a lot of headaches is my guess.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Platforms that do not support fork (primarily Win32 and AS/400)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Consider introducing HAVE_FORK feature macro. Architect start-up code
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync that avoids initializing all the modules in the parent process on
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync platforms that do not support fork.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Clean the code. There are a lot of places we used APR but didn't
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync remove the hacks that were required for the cross-platform code in
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync 1.3. We need to make the code look like APR was supposed to be there.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Go throught the Bug DB and research the bugs marked "suspended". People
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync were told these would be considered for inclusion in Apache 2.0, it
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync would be nice to actually do so.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Migrate the MPM over to use APR thread/process calls. This
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync would eliminate some code in the Win32 branch that essentially
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync duplicates what is in APR.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Bill <stoddard@raleigh.ibm.com> is working on this.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Move I/O layering into APR.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * There are still a number of places in the code where we are
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync loosing error status (i.e. throwing away the error returned by a
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync system call and replacing it with a generic error code)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Implement reliable piped logs on Windows
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Bill <stoddard@raleigh.ibm.com> has prototype code (not
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync reliable) in 1.3. Should be much cleaner with APR in 2.0.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Switch to autoconf, et al. for configuration.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Manoj has placed an initial version into the 2.0
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync repository. Todos include:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync - "make install" should work
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync - a tool to simplfy third-party module building should be
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync written. Something like apxs
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync - Add a lot more checks to satisfy the various platforms, e.g.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync for threading
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Use APR to get rid of more platform dependancies.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Ryan Bloom <rbb@raleigh.ibm.com> is working on this.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * The connection status table is not very efficient. Also, very few stats
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync are exported to the connection status table (easy to fix), and mod_status
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncOther bugs that need fixing:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MaxRequestsPerChild measures connections, not requests.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Until someone has a better way, we'll probably just rename it
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync "MaxConnectionsPerChild".
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Regex containers don't work in an intutive way
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: No one has come up with an efficient way to fix this
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync behavior. Dean has suggested getting rid of regex containers
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync completely.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync sigwaiting thread. We need to work around this, perhaps unless
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync there is hope soon for a fixed glibc.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncOther features that need writing:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Finish infrastructure in core for async MPMs
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: post 2.0
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * TODO in source -- just do an egrep on "TODO" and see what's there
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDocumentation that needs writing:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * The concept of MPMs, especially if we ship more than one MPM for a
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync given platform
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * New directives in the various MPMs
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * API documentation
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Ben Laurie has written some hooks documentation
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Changes since 1.3.9 can be more easily seen in the commitlog file
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync dev.apache.org:/home/cvs/CVSROOT/commitlogs/apache-2.0
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync which includes some of Roy's comments when the changes were
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync committed in rough change-sets by purpose. Note that the commitlog
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync does not show the contents of new files until later.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncAvailable Patches:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync performance
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: These were written for 1.3, and are awaiting a port to
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncOpen issues:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * What do we do about mod_proxy?
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Which MPMs will be included with Apache 2.0?
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Is conf/highperformance.conf-dist obsolete? It looks obsolete.