STATUS revision 8de99b4c89d4ed4292a7dca42dd8a96b9a7c456f
842ae4bd224140319ae7feec1872b93dfd491143fieldingApache 2.0 STATUS:
842ae4bd224140319ae7feec1872b93dfd491143fieldingLast modified at [$Date: 2000/03/02 08:07:21 $]
842ae4bd224140319ae7feec1872b93dfd491143fielding
842ae4bd224140319ae7feec1872b93dfd491143fieldingRelease:
842ae4bd224140319ae7feec1872b93dfd491143fielding
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
7e79e8fd53348f9fc6e8009a4a2522425ab6f08ffielding
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcndRELEASE SHOWSTOPPERS:
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd * Fix lingering close
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd Status:
ce9621257ef9e54c1bbe5ad8a5f445a1f211c2dcnd
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 Status:
cccd31fa4a72fe23cc3249c06db181b274a55a69gstein
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
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.
1b21d7b3d97def358b2e923655edeb16613a1c31gstein
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
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker * Put back resource limit code
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * Port mod_rewrite
944fd48ac53d788e06dc7d5968b3d3a08ac1c17cgeoff Status: Paul Reder <rederpj@raleigh.ibm.com> is working on this.
fb0c14f07aa634d66663d85fa621c99a53bc74e4trawick
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker * suEXEC doesn't work
1f728f035fca81594193e198b40bfa732b1c02ebtrawick Status: Manoj has posted an patch to fix this.
2e123e8beedc9f921448c113e2d6823a92fd5261fielding <19991103003605.A20612@samosa.mindspring.com>
9f7325ecad575cf77ab76b01beaaf339a63490b5trawick
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding * Win32: Enable the Windows MPM to honor max_requests_per_child
370c2c1823a41b1aeb07a2515774d03b2d781259jorton Status: Bill will fix this.
370c2c1823a41b1aeb07a2515774d03b2d781259jorton
370c2c1823a41b1aeb07a2515774d03b2d781259jorton * Win32: Fix Win9* specific code in the winnt MPM
370c2c1823a41b1aeb07a2515774d03b2d781259jorton Status:
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker
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?
ea59c023eb991c0195fe9c7cc858edbc0e7b81eawrowe Status:
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick * Win32: Smoke test all ported modules to make sure they work
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick correctly under Windows.
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick Status:
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick
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
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
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick * Modules. Which modules do not work yet, can we get a list?
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick
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,
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawickRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick * "make distclean" leaves (at least these) turds:
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick lib/.deps
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick lib/apr/.deps
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick lib/apr/shmem/unix/mm/config.log
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick lib/apr/shmem/unix/mm/mm_conf.h
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick lib/apr/shmem/unix/mm/libtool
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick lib/apr/shmem/unix/mm/config.status
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick lib/apr/shmem/unix/mm/Makefile
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick lib/apr/shmem/unix/mm/mm-config
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick main/a
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick modules/.deps
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick modules/mpm/.deps
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick os/.deps
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick
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.
f23c50b3628a8571da2ff3277ae58ef1d675554ftrawick
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * Win32: Enable the winnt MPM to use the new scoreboard API
2e123e8beedc9f921448c113e2d6823a92fd5261fielding
1ce78cf71b5baaf2c1ab48e818cb1f2397df5010trawick * Win32: Non-blocking CGI pipes
2e123e8beedc9f921448c113e2d6823a92fd5261fielding
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * Win32: Graceful restart of a service is broken (code does shutdown then start)
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker
5950c42befb93e3915afaae38a69623c070e59b3wrowe * Dynamically loadable MPMs
5950c42befb93e3915afaae38a69623c070e59b3wrowe Enable users of the binary distributions of Apache to be able to
5950c42befb93e3915afaae38a69623c070e59b3wrowe dynamically load the MPM.
5950c42befb93e3915afaae38a69623c070e59b3wrowe
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.
d1227d216516ced66cb7ee651f2e63a3919b172atrawick
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
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.
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker
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
74239045b793236dab229b4fca06d8d00f8cbe24martin * Move I/O layering into APR.
74239045b793236dab229b4fca06d8d00f8cbe24martin
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
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.
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker * Switch to autoconf, et al. for configuration.
0e4249c46439b33a7f18e1a0c0354d49879b14ebgstein Status: Manoj has placed an initial version into the 2.0
0e4249c46439b33a7f18e1a0c0354d49879b14ebgstein repository. Todos include:
09fe0b69d3d1e8c8041c9ce99ee77b8b44b5e3b1fielding
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
0e4249c46439b33a7f18e1a0c0354d49879b14ebgstein
c4ad483abb132fd413aead2df8715aa479559a37rbb * Use APR to get rid of more platform dependancies.
0e4249c46439b33a7f18e1a0c0354d49879b14ebgstein Status: Ryan Bloom <rbb@raleigh.ibm.com> is working on this.
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker
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
2e123e8beedc9f921448c113e2d6823a92fd5261fielding is ugly.
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker
2e123e8beedc9f921448c113e2d6823a92fd5261fieldingOther bugs that need fixing:
2e123e8beedc9f921448c113e2d6823a92fd5261fielding
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * MaxRequestsPerChild measures connections, not requests.
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker Until someone has a better way, we'll probably just rename it
3ac27a4a113ee494d539f3740e3dd4c646dbc518trawick "MaxConnectionsPerChild".
107cfa3869d7cdce922ef44aacdd95af8990c706trawick
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.
107cfa3869d7cdce922ef44aacdd95af8990c706trawick
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.
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick
2e123e8beedc9f921448c113e2d6823a92fd5261fieldingOther features that need writing:
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick * Finish infrastructure in core for async MPMs
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick Status: ?
2e123e8beedc9f921448c113e2d6823a92fd5261fielding
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker * TODO in source -- just do an egrep on "TODO" and see what's there
a1be7357e2c08b9dfe52c277063d212d65b15feejim
a1be7357e2c08b9dfe52c277063d212d65b15feejim * Work on other MPMs. Possible MPMs discussed or in progress include:
a1be7357e2c08b9dfe52c277063d212d65b15feejim
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.
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick - Zach Brown's <zab@zabbo.net> Linux siginfo MPM
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick Status: ?
2e123e8beedc9f921448c113e2d6823a92fd5261fielding
51f9c50e4116dba10d9bf9bedf921272b88b9c9estrikerDocumentation that needs writing:
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick
da61a7ee603c178e6b78ed89c90e6d0fe9e6a111trawick * The concept of MPMs, especially if we ship more than one MPM for a
2e123e8beedc9f921448c113e2d6823a92fd5261fielding given platform
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker
649ab77e5360f9dd4f474156136ffc712fbb2a57trawick * New directives in the various MPMs
649ab77e5360f9dd4f474156136ffc712fbb2a57trawick
649ab77e5360f9dd4f474156136ffc712fbb2a57trawick * API documentation
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker Status: Ben Laurie has written some hooks documentation
2e123e8beedc9f921448c113e2d6823a92fd5261fielding (apache-2.0/htdocs/hooks.html)
2e123e8beedc9f921448c113e2d6823a92fd5261fielding
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.
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker
7646be5b9ab5b098bc81d3a08a47e1931dc87597rbbAvailable Patches:
7646be5b9ab5b098bc81d3a08a47e1931dc87597rbb
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
2e123e8beedc9f921448c113e2d6823a92fd5261fielding 2.0
2e123e8beedc9f921448c113e2d6823a92fd5261fielding
51f9c50e4116dba10d9bf9bedf921272b88b9c9estrikerOpen issues:
2e123e8beedc9f921448c113e2d6823a92fd5261fielding
2e123e8beedc9f921448c113e2d6823a92fd5261fielding * What do we do about mod_proxy?
51f9c50e4116dba10d9bf9bedf921272b88b9c9estriker
52e3d2373288a4015d4152067c124e4dc9876f08trawick * Which MPMs will be included with Apache 2.0?
52e3d2373288a4015d4152067c124e4dc9876f08trawick
db3fa7db7c7910f2f23c3e3ffe0cf9f41a1899b9trawick * Is conf/highperformance.conf-dist obsolete? It looks obsolete.
db3fa7db7c7910f2f23c3e3ffe0cf9f41a1899b9trawick
2e123e8beedc9f921448c113e2d6823a92fd5261fielding