STATUS revision 40a5b7189dbbb28e107bf008ee625f2f0142c2cc
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncApache 2.0 STATUS:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncLast modified at [$Date: 2000/03/02 09:57:28 $]
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRelease:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRELEASE SHOWSTOPPERS:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Fix SAFEREAD
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Fix lingering close
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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 Status:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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
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
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
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Put back resource limit code
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * suEXEC doesn't work
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Manoj has posted an patch to fix this.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync <19991103003605.A20612@samosa.mindspring.com>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Enable the Windows MPM to honor max_requests_per_child
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Bill will fix this.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Fix Win9* specific code in the winnt MPM
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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 Status:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Smoke test all ported modules to make sure they work
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync correctly under Windows.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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
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
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Modules. Which modules do not work yet, can we get a list?
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * "make distclean" leaves (at least these) turds:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync lib/.deps
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync lib/apr/.deps
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync lib/apr/shmem/unix/mm/config.log
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync lib/apr/shmem/unix/mm/mm_conf.h
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync lib/apr/shmem/unix/mm/libtool
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync lib/apr/shmem/unix/mm/config.status
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync lib/apr/shmem/unix/mm/Makefile
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync lib/apr/shmem/unix/mm/mm-config
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync main/a
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync modules/.deps
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync modules/mpm/.deps
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync os/.deps
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * apaci permissions problem:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cvs checkout apache-2.0
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync cd apache-2.0/src
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ./configure
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync edit some Makefile.in
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ./config.status
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync now apaci is no longer executable and future makes fail
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Enable the winnt MPM to use the new scoreboard API
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Non-blocking CGI pipes
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Win32: Graceful restart of a service is broken (code does shutdown then start)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Dynamically loadable MPMs
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Enable users of the binary distributions of Apache to be able to
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync dynamically load the MPM.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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
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
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
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
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
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Move I/O layering into APR.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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
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
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
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
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Use APR to get rid of more platform dependancies.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Ryan Bloom <rbb@raleigh.ibm.com> is working on this.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync is ugly.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncOther bugs that need fixing:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MaxRequestsPerChild measures connections, not requests.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Until someone has a better way, we'll probably just rename it
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync "MaxConnectionsPerChild".
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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
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.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncOther features that need writing:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Finish infrastructure in core for async MPMs
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: post 2.0
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * TODO in source -- just do an egrep on "TODO" and see what's there
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDocumentation that needs writing:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * The concept of MPMs, especially if we ship more than one MPM for a
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync given platform
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * New directives in the various MPMs
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * API documentation
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync Status: Ben Laurie has written some hooks documentation
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync (apache-2.0/htdocs/hooks.html)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncAvailable Patches:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
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
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync 2.0
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncOpen issues:
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * What do we do about mod_proxy?
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Which MPMs will be included with Apache 2.0?
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Is conf/highperformance.conf-dist obsolete? It looks obsolete.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync