STATUS revision 85cbdc16ac57fa68ce1358a308269abcd417f4d9
7e6c9a9a733f7a57ace98e4692573f42a2cad0edBob HalleyApache 2.0 STATUS:
e676a596869d8a80a644c99a848afb53d1c5975eMark AndrewsLast modified at [$Date: 2000/02/25 03:44:44 $]
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David LawrenceRelease:
ec5347e2c775f027573ce5648b910361aa926c01Automatic Updater
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 Andrews
dafcb997e390efa4423883dafd100c975c4095d6Mark AndrewsRELEASE SHOWSTOPPERS:
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * Fix lingering close
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews Status:
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews
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.
41f11644387cf54e4affe496c0532165ac41eb87Automatic Updater Status:
9c3531d72aeaad6c5f01efe6a1c82023e1379e4dDavid Lawrence
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
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.
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein
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.
5a2b8787dc6a0b2f4068e89c2a4465547f3a6207Andreas Gustafsson
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson * Put back resource limit code
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson * Port mod_rewrite
5a2b8787dc6a0b2f4068e89c2a4465547f3a6207Andreas Gustafsson Status: Paul Reder <rederpj@raleigh.ibm.com> is working on this.
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence
5a2b8787dc6a0b2f4068e89c2a4465547f3a6207Andreas Gustafsson * suEXEC doesn't work
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson Status: Manoj has posted an patch to fix this.
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson <19991103003605.A20612@samosa.mindspring.com>
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson * Win32: Enable the Windows MPM to honor max_requests_per_child
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence Status: Bill will fix this.
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson * Win32: Fix Win9* specific code in the winnt MPM
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein Status:
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson
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?
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence Status:
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson * Win32: Smoke test all ported modules to make sure they work
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson correctly under Windows.
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson Status:
e57d7e30f1a2e3fbd71d6cf0f18629c8a00bd9b8Andreas Gustafsson
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
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.
7e6c9a9a733f7a57ace98e4692573f42a2cad0edBob Halley
28fc90e6c81338c5f34e065fdda49d320e362583Mark Andrews * Modules. Which modules do not work yet, can we get a list?
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence
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,
838d608e6f37038f2fb43980a7a9d6b6a490db36Mark Andrews
5cee8302fce56a10c73a66f2414e26adb621afbcAndreas GustafssonRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
838d608e6f37038f2fb43980a7a9d6b6a490db36Mark Andrews
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.
838d608e6f37038f2fb43980a7a9d6b6a490db36Mark Andrews
7e6c9a9a733f7a57ace98e4692573f42a2cad0edBob Halley * Win32: Enable the winnt MPM to use the new scoreboard API
5debbf1189c145db2da3cbf69a8c01379c5c68a3Bob Halley
7e6c9a9a733f7a57ace98e4692573f42a2cad0edBob Halley * Win32: Non-blocking CGI pipes
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson * Win32: Graceful restart of a service is broken (code does shutdown then start)
cec6fc9dc5c6fd0a16770e0d85c0d55a75e5125aAndreas Gustafsson
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
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
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.
c426fddf168a3cdfc1c4c162365d440c89148ae4Mark Andrews
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
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.
f5d0f495847eb4eb9f0058e73051f855800bee0bMark Andrews
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence * Move I/O layering into APR.
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence
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
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
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:
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence
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
78d78f05d91205cbde33ca87d24b8d13aa2d8d66Brian Wellington
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
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
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence is ugly.
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence
ab023a65562e62b85a824509d829b6fad87e00b1Rob AusteinOther bugs that need fixing:
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein * MaxRequestsPerChild measures connections, not requests.
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence Until someone has a better way, we'll probably just rename it
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence "MaxConnectionsPerChild".
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence
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
d36ba0f0caa64111a9a3236944f730dfb3fe5245Mark Andrews completely.
d46855caedd5cb101795707f6f467fa363ef1448Evan Hunt
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.
d46855caedd5cb101795707f6f467fa363ef1448Evan Hunt
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid LawrenceOther features that need writing:
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt
a32738e3e4ed9619c8ace22cd119e6769176b22cAndreas Gustafsson * Finish infrastructure in core for async MPMs
d878b8d87c3f46a25ccae9f5cfe6e39af67562e0Evan Hunt Status: ?
d878b8d87c3f46a25ccae9f5cfe6e39af67562e0Evan Hunt
93143fd81acd86e594bac20c6c58b930dfe63a80Evan Hunt * TODO in source -- just do an egrep on "TODO" and see what's there
ab023a65562e62b85a824509d829b6fad87e00b1Rob Austein
4c03e69ab845f703c1ffa3b7772938ca98cce44dAndreas Gustafsson * Work on other MPMs. Possible MPMs discussed or in progress include:
4c03e69ab845f703c1ffa3b7772938ca98cce44dAndreas Gustafsson
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
4c03e69ab845f703c1ffa3b7772938ca98cce44dAndreas Gustafsson - Zach Brown's <zab@zabbo.net> Linux siginfo MPM
4c03e69ab845f703c1ffa3b7772938ca98cce44dAndreas Gustafsson Status: ?
4c03e69ab845f703c1ffa3b7772938ca98cce44dAndreas Gustafsson
b2086d798b442a428d50ddc247925f114aa4112fEvan HuntDocumentation that needs writing:
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence
b2086d798b442a428d50ddc247925f114aa4112fEvan Hunt * The concept of MPMs, especially if we ship more than one MPM for a
b2086d798b442a428d50ddc247925f114aa4112fEvan Hunt given platform
b5f6271f4daf1e54501af2cb7dd278d7e8003d65Mark Andrews
16134801ce8fffbb6c42bb54d544c3397a45ad06Mark Andrews * New directives in the various MPMs
7e6c9a9a733f7a57ace98e4692573f42a2cad0edBob Halley
7e6c9a9a733f7a57ace98e4692573f42a2cad0edBob Halley * API documentation
b2086d798b442a428d50ddc247925f114aa4112fEvan Hunt Status: Ben Laurie has written some hooks documentation
b2086d798b442a428d50ddc247925f114aa4112fEvan Hunt (apache-2.0/htdocs/hooks.html)
b2086d798b442a428d50ddc247925f114aa4112fEvan Hunt
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 Andrews
16134801ce8fffbb6c42bb54d544c3397a45ad06Mark AndrewsAvailable Patches:
16134801ce8fffbb6c42bb54d544c3397a45ad06Mark Andrews
16134801ce8fffbb6c42bb54d544c3397a45ad06Mark Andrews * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
d878b8d87c3f46a25ccae9f5cfe6e39af67562e0Evan Hunt performance
16134801ce8fffbb6c42bb54d544c3397a45ad06Mark Andrews Status: These were written for 1.3, and are awaiting a port to
16134801ce8fffbb6c42bb54d544c3397a45ad06Mark Andrews 2.0
c8aa7ce70d75d5d8f28f941e3a522c71e948b166Evan Hunt
16134801ce8fffbb6c42bb54d544c3397a45ad06Mark AndrewsOpen issues:
16134801ce8fffbb6c42bb54d544c3397a45ad06Mark Andrews
16134801ce8fffbb6c42bb54d544c3397a45ad06Mark Andrews * What do we do about mod_proxy?
16134801ce8fffbb6c42bb54d544c3397a45ad06Mark Andrews
16134801ce8fffbb6c42bb54d544c3397a45ad06Mark Andrews * Which MPMs will be included with Apache 2.0?
16134801ce8fffbb6c42bb54d544c3397a45ad06Mark Andrews
d46855caedd5cb101795707f6f467fa363ef1448Evan Hunt * Is conf/highperformance.conf-dist obsolete? It looks obsolete.
b2ca6fd3a8293440b4d263723525396059cf2400Brian Wellington
261a6a1f7d95eaf0cd882f3123dcfd775517a54fMark Andrews