STATUS revision 8de99b4c89d4ed4292a7dca42dd8a96b9a7c456f
842ae4bd224140319ae7feec1872b93dfd491143fieldingApache 2.0 STATUS:
842ae4bd224140319ae7feec1872b93dfd491143fieldingLast modified at [$Date: 2000/03/02 08:07:21 $]
842ae4bd224140319ae7feec1872b93dfd491143fielding Vague plan, assuming more features aren't demanded for the 2.0 release
7e79e8fd53348f9fc6e8009a4a2522425ab6f08ffielding 2.0a1 : March 2000
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd 2.0 : later in 2000
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcndRELEASE SHOWSTOPPERS:
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * Fix lingering close
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * MPMs should have responsibility for closing sockets and
7e79e8fd53348f9fc6e8009a4a2522425ab6f08ffielding registering the socket cleanup. Stop registering multiple
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding cleanups for each socket. Move socket close code out of
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein http_connection.c and into the MPMs.
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein * Reliable piped logs look broken everywhere. Each MPM includes essentially
1b21d7b3d97def358b2e923655edeb16613a1c31gstein identical code to ap_register_other_child(), etc. Most of this code can
03d4bd1f300820885d35d51369c102d60db9ab5cwrowe be moved out of the MPMs and into some common file (http_core.c?).
5950c42befb93e3915afaae38a69623c070e59b3wrowe * DSO hooks registered during the preflight call to ap_read_config
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein are not 'unregistered' during the preflight clean-up. Thus, when
1b21d7b3d97def358b2e923655edeb16613a1c31gstein Apache comes up, the hook tables contain two entries for each DSO hook,
56ee84931be318497a6b68e60f725b9b1ad48412trawick one of which is bogus, leftover from the preflight.
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein * Pipes to CGI scripts are not being timed out
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding Status: code has been added to APR to support timing out pipes.
2d71630471d1c23f0137309e3c3957c633ecbfd6rbb This needs to be used in Apache now.
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker * Put back resource limit code
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * Port mod_rewrite
944fd48ac53d788e06dc7d5968b3d3a08ac1c17cgeoff Status: Paul Reder <rederpj@raleigh.ibm.com> is working on this.
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker * suEXEC doesn't work
1f728f035fca81594193e198b40bfa732b1c02ebtrawick Status: Manoj has posted an patch to fix this.
2e123e8beedc9f921448c113e2d6823a92fd5261fielding <19991103003605.A20612@samosa.mindspring.com>
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Win32: Enable the Windows MPM to honor max_requests_per_child
370c2c1823a41b1aeb07a2515774d03b2d781259jorton Status: Bill will fix this.
370c2c1823a41b1aeb07a2515774d03b2d781259jorton * Win32: Fix Win9* specific code in the winnt MPM
ea59c023eb991c0195fe9c7cc858edbc0e7b81eawrowe * Win32: Test access logging with multiple threads. Will the
ea59c023eb991c0195fe9c7cc858edbc0e7b81eawrowe native file I/O calls serialize automagically like the
ea59c023eb991c0195fe9c7cc858edbc0e7b81eawrowe CRT calls or do we need to add region locking each time
ea59c023eb991c0195fe9c7cc858edbc0e7b81eawrowe we access the logs?
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick * Win32: Smoke test all ported modules to make sure they work
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick correctly under Windows.
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick * Current 2.0 code is not tested on many Unix platforms. Make 2.0
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick work on most, if not all the systems 1.3 did
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick Status: Autoconf and APR will get us most of the way there.
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick * The module API is a weird combination of the old table and the new
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick hook system. Switch completely to the new hook system
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick Status: Ben Laurie is working on this.
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick * Modules. Which modules do not work yet, can we get a list?
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick * We need a thread-safe resolver, at least on Unix.
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick Status: The best known candidate would be something from BIND
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick (v8 or v9?) The only other option would be to mutex all the
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick resolver calls,
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawickRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick * "make distclean" leaves (at least these) turds:
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick modules/.deps
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick * Win32: Reuse accept socket after transmitfile/close
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick This is not a bug, but would be nice to get this feature in
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick before ship.
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * Win32: Enable the winnt MPM to use the new scoreboard API
1ce78cf71b5baaf2c1ab48e818cb1f2397df5010trawick * Win32: Non-blocking CGI pipes
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * Win32: Graceful restart of a service is broken (code does shutdown then start)
5950c42befb93e3915afaae38a69623c070e59b3wrowe * Dynamically loadable MPMs
5950c42befb93e3915afaae38a69623c070e59b3wrowe Enable users of the binary distributions of Apache to be able to
5950c42befb93e3915afaae38a69623c070e59b3wrowe dynamically load the MPM.
d1227d216516ced66cb7ee651f2e63a3919b172atrawick * Platforms that do not support fork (primarily Win32 and AS/400)
d1227d216516ced66cb7ee651f2e63a3919b172atrawick Consider introducing HAVE_FORK feature macro. Architect start-up code
d1227d216516ced66cb7ee651f2e63a3919b172atrawick that avoids initializing all the modules in the parent process on
d1227d216516ced66cb7ee651f2e63a3919b172atrawick platforms that do not support fork.
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick * Clean the code. There are a lot of places we used APR but didn't
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick remove the hacks that were required for the cross-platform code in
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick 1.3. We need to make the code look like APR was supposed to be there.
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * Go throught the Bug DB and research the bugs marked "suspended". People
2e123e8beedc9f921448c113e2d6823a92fd5261fielding were told these would be considered for inclusion in Apache 2.0, it
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding would be nice to actually do so.
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * Win32: Migrate the MPM over to use APR thread/process calls. This
2e123e8beedc9f921448c113e2d6823a92fd5261fielding would eliminate some code in the Win32 branch that essentially
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding duplicates what is in APR.
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker Status: Bill <stoddard@raleigh.ibm.com> is working on this.
74239045b793236dab229b4fca06d8d00f8cbe24martin * Move I/O layering into APR.
74239045b793236dab229b4fca06d8d00f8cbe24martin * There are still a number of places in the code where we are
74239045b793236dab229b4fca06d8d00f8cbe24martin loosing error status (i.e. throwing away the error returned by a
74239045b793236dab229b4fca06d8d00f8cbe24martin system call and replacing it with a generic error code)
74239045b793236dab229b4fca06d8d00f8cbe24martin * Win32: Implement reliable piped logs on Windows
2e123e8beedc9f921448c113e2d6823a92fd5261fielding Status: Bill <stoddard@raleigh.ibm.com> has prototype code (not
2e123e8beedc9f921448c113e2d6823a92fd5261fielding reliable) in 1.3. Should be much cleaner with APR in 2.0.
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker * Switch to autoconf, et al. for configuration.
0e4249c46439b33a7f18e1a0c0354d49879b14ebgstein Status: Manoj has placed an initial version into the 2.0
0e4249c46439b33a7f18e1a0c0354d49879b14ebgstein repository. Todos include:
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker - "make install" should work
869c6cadcb62868c157e5287dd422f32e622b670trawick - a tool to simplfy third-party module building should be
869c6cadcb62868c157e5287dd422f32e622b670trawick written. Something like apxs
869c6cadcb62868c157e5287dd422f32e622b670trawick - Add a lot more checks to satisfy the various platforms, e.g.
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker for threading
c4ad483abb132fd413aead2df8715aa479559a37rbb * Use APR to get rid of more platform dependancies.
0e4249c46439b33a7f18e1a0c0354d49879b14ebgstein Status: Ryan Bloom <rbb@raleigh.ibm.com> is working on this.
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * The connection status table is not very efficient. Also, very few stats
2e123e8beedc9f921448c113e2d6823a92fd5261fielding are exported to the connection status table (easy to fix), and mod_status
2e123e8beedc9f921448c113e2d6823a92fd5261fieldingOther bugs that need fixing:
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * MaxRequestsPerChild measures connections, not requests.
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker Until someone has a better way, we'll probably just rename it
3ac27a4a113ee494d539f3740e3dd4c646dbc518trawick "MaxConnectionsPerChild".
107cfa3869d7cdce922ef44aacdd95af8990c706trawick * Regex containers don't work in an intutive way
107cfa3869d7cdce922ef44aacdd95af8990c706trawick Status: No one has come up with an efficient way to fix this
107cfa3869d7cdce922ef44aacdd95af8990c706trawick behavior. Dean has suggested getting rid of regex containers
107cfa3869d7cdce922ef44aacdd95af8990c706trawick completely.
3ac27a4a113ee494d539f3740e3dd4c646dbc518trawick * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker sigwaiting thread. We need to work around this, perhaps unless
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick there is hope soon for a fixed glibc.
2e123e8beedc9f921448c113e2d6823a92fd5261fieldingOther features that need writing:
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick * Finish infrastructure in core for async MPMs
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker * TODO in source -- just do an egrep on "TODO" and see what's there
a1be7357e2c08b9dfe52c277063d212d65b15feejim * Work on other MPMs. Possible MPMs discussed or in progress include:
a1be7357e2c08b9dfe52c277063d212d65b15feejim - Dean Gaudet's async MPM
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick Status: dean is unlikely to begin work on this any time soon...
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick has lots of ideas he'll share with folks willing to begin
2e123e8beedc9f921448c113e2d6823a92fd5261fielding tackling the issues. this is apache 2.1 material.
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick - Zach Brown's <zab@zabbo.net> Linux siginfo MPM
51f9c50e4116dba10d9bf9bedf921272b88b9c9estrikerDocumentation that needs writing:
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick * The concept of MPMs, especially if we ship more than one MPM for a
2e123e8beedc9f921448c113e2d6823a92fd5261fielding given platform
649ab77e5360f9dd4f474156136ffc712fbb2a57trawick * New directives in the various MPMs
649ab77e5360f9dd4f474156136ffc712fbb2a57trawick * API documentation
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker Status: Ben Laurie has written some hooks documentation
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * Changes since 1.3.9 can be more easily seen in the commitlog file
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker dev.apache.org:/home/cvs/CVSROOT/commitlogs/apache-2.0
be0e6ea9b4676d85da9cde63fa9ae443d1560f54stoddard which includes some of Roy's comments when the changes were
7f1290cbf118bf3d34aecc68cff2e5bd0a23e126rbb committed in rough change-sets by purpose. Note that the commitlog
2e123e8beedc9f921448c113e2d6823a92fd5261fielding does not show the contents of new files until later.
7646be5b9ab5b098bc81d3a08a47e1931dc87597rbbAvailable Patches:
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker performance
2e123e8beedc9f921448c113e2d6823a92fd5261fielding Status: These were written for 1.3, and are awaiting a port to
51f9c50e4116dba10d9bf9bedf921272b88b9c9estrikerOpen issues:
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * What do we do about mod_proxy?
52e3d2373288a4015d4152067c124e4dc9876f08trawick * Which MPMs will be included with Apache 2.0?
db3fa7db7c7910f2f23c3e3ffe0cf9f41a1899b9trawick * Is conf/highperformance.conf-dist obsolete? It looks obsolete.