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