STATUS revision d208bda4a893cc81ed5d3ed1cdd7d706e012bd42
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark AndrewsApache 2.0 STATUS:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLast modified at [$Date: 2000/04/04 22:28:49 $]
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User Vague plan, assuming more features aren't demanded for the 2.0 release
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User 2.0a1 : released March 10, 2000
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein 2.0 : later in 2000
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinRELEASE SHOWSTOPPERS:
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User * Fix SAFEREAD
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt * Fix lingering close
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User * MPMs should have responsibility for closing sockets and
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein registering the socket cleanup. Stop registering multiple
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cleanups for each socket. Move socket close code out of
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein http_connection.c and into the MPMs.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein * Reliable piped logs look broken everywhere. Each MPM includes essentially
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein identical code to ap_register_other_child(), etc. Most of this code can
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein be moved out of the MPMs and into some common file (http_core.c?).
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Dean says presumably you mean an os-specific file?
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews * Pipes to CGI scripts are not being timed out
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Status: code has been added to APR to support timing out pipes.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein This needs to be used in Apache now.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein * Put back resource limit code
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User * suEXEC doesn't work
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User Status: Manoj has posted an patch to fix this.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt <19991103003605.A20612@samosa.mindspring.com>
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User * Win32: Enable the Windows MPM to honor max_requests_per_child
0b89eee6167201843c9a46b7e7c63cb1e4e09ba3Tinderbox User Status: Bill will fix this.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt * Win32: Get Apache working on Windows 95/98. The following work
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt (at least) needs to be done:
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User - winnt MPM: Fix 95/98 code paths in the winnt MPM. There is some NT
a1ff871f78b7d907d6fc3a382beea2a640fe8423Tinderbox User specific code that is still not in NT only code paths
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User - APR sendfile uses TransmitFile which is not available on
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User - ap_stat uses GetFileAttributeEx which is not available on
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt * Win32: Test access logging with multiple threads. Will the
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt native file I/O calls serialize automagically like the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein CRT calls or do we need to add region locking each time
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User we access the logs?
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User * Win32: Smoke test all ported modules to make sure they work
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User correctly under Windows.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User * Current 2.0 code is not tested on many Unix platforms. Make 2.0
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User work on most, if not all the systems 1.3 did
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User Status: Autoconf and APR will get us most of the way there.
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User * The handler hook needs to use the new registration system
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User * Modules. Which modules do not work yet, can we get a list?
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User * We need a thread-safe resolver, at least on Unix.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt Status: The best known candidate would be something from
14a656f94b1fd0ababd84a772228dfa52276ba15Evan HuntRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt * "make distclean" leaves (at least these) turds:
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User modules/.deps
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User * the top-level configure.in appears to use $USE_MAINTAINER_MODE = yes
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User to set -Wall/etc. flags, and the APR configure.in appears to use
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User --with-debug. both seem like more of a hardwired pain compaired
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User to the pre-2.0 method of setting EXTRA_CFLAGS.
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User * Win32: Reuse accept socket after transmitfile/close
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User This is not a bug, but would be nice to get this feature in
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User * Win32: Enable the winnt MPM to use the new scoreboard API
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User * Win32: Non-blocking CGI pipes
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User * Win32: Graceful restart of a service is broken (code does shutdown then start)
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User * Dynamically loadable MPMs
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User Enable users of the binary distributions of Apache to be able to
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User dynamically load the MPM.
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User Dean says this probably isn't a good idea. For example consider
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User -lpthread, you couldn't have the same core run with pthreads,
33c9436ef1a43d3c0fc3d9be9b4b0509daa83223Tinderbox User prefork, and gnu pth without a lot of headaches is my guess.
a1ff871f78b7d907d6fc3a382beea2a640fe8423Tinderbox User * Platforms that do not support fork (primarily Win32 and AS/400)
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User Consider introducing HAVE_FORK feature macro. Architect start-up code
0da02c26a6631c25f075a8e4ac6de9e58f49a0c2Tinderbox User that avoids initializing all the modules in the parent process on
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User platforms that do not support fork.
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User * Clean the code. There are a lot of places we used APR but didn't
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User remove the hacks that were required for the cross-platform code in
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User 1.3. We need to make the code look like APR was supposed to be there.
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User * Go throught the 1.3 Bug DB and research the bugs marked "suspended".
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User People were told these would be considered for inclusion in Apache 2.0,
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User it would be nice to actually do so.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User * Win32: Migrate the MPM over to use APR thread/process calls. This
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User would eliminate some code in the Win32 branch that essentially
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User duplicates what is in APR.
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User Status: Bill <stoddard@raleigh.ibm.com> is working on this.
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User * Move I/O layering into APR.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User * There are still a number of places in the code where we are
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User loosing error status (i.e. throwing away the error returned by a
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User system call and replacing it with a generic error code)
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User * Win32: Implement reliable piped logs on Windows
8a48b6b9b6fa8486f24b22d1972b2b6ebb36a4a4Tinderbox User Status: Bill <stoddard@raleigh.ibm.com> has prototype code (not
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User reliable) in 1.3. Should be much cleaner with APR in 2.0.
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User * Switch to autoconf, et al. for configuration.
a1ff871f78b7d907d6fc3a382beea2a640fe8423Tinderbox User Status: Manoj has placed an initial version into the 2.0
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User repository. Todos include:
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User - "make install" should work
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User - a tool to simplfy third-party module building should be
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User written. Something like apxs
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User - Add a lot more checks to satisfy the various platforms, e.g.
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User for threading
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User * Use APR to get rid of more platform dependancies.
363b21045b718d06d414784c96193dc9a233e8c5Tinderbox User Status: Ryan Bloom <rbb@raleigh.ibm.com> is working on this.
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User * The connection status table is not very efficient. Also, very few stats
550d3276d0490c4918f089ccb1528a3eb0951b0aTinderbox User are exported to the connection status table (easy to fix), and mod_status
550d3276d0490c4918f089ccb1528a3eb0951b0aTinderbox UserOther bugs that need fixing:
550d3276d0490c4918f089ccb1528a3eb0951b0aTinderbox User * MaxRequestsPerChild measures connections, not requests.
550d3276d0490c4918f089ccb1528a3eb0951b0aTinderbox User Until someone has a better way, we'll probably just rename it
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User "MaxConnectionsPerChild".
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User * Regex containers don't work in an intutive way
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User Status: No one has come up with an efficient way to fix this
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User behavior. Dean has suggested getting rid of regex containers
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User sigwaiting thread. We need to work around this, perhaps unless
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User there is hope soon for a fixed glibc.
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox UserOther features that need writing:
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User * Finish infrastructure in core for async MPMs
51da15c88648a9e47d0cddff4b2b782665e99401Tinderbox User Status: post 2.0
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox User * TODO in source -- just do an egrep on "TODO" and see what's there
7911e6f9de303bca5a3d8b34f4330c8f7cecffaeTinderbox UserDocumentation that needs writing:
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User * The concept of MPMs, especially if we ship more than one MPM for a
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User given platform
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User * New directives in the various MPMs and appropriate links from
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User obsolete directives in core.html to the MPM documentation.
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User * Revise manual/stopping.html and the last part of
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User manual/misc/perf-tuning.html to take account of the MPMs.
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User * API documentation
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User Status: Ben Laurie has written some hooks documentation
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User * Changes since 1.3.9 can be more easily seen in the commitlog file
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User dev.apache.org:/home/cvs/CVSROOT/commitlogs/apache-2.0
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User which includes some of Roy's comments when the changes were
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User committed in rough change-sets by purpose. Note that the commitlog
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox User does not show the contents of new files until later.
3ca1a32241189d1e02e59f6b56399eb9b40f2aafTinderbox UserAvailable Patches:
dfae459e8c4f794f8a239e74aa9d5e11cce6ea5bTinderbox User * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
bfb7b680bf88c1fdd9949197b71c512c532280a4Tinderbox User Status: These were written for 1.3, and are awaiting a port to
abe69df9a7de5cda07a2b8e19e8b7c981bcd7a9dTinderbox User * What do we do about mod_proxy?
a0fb6a0980359165a4459723f52d5d7b5725f9c6Tinderbox User * Which MPMs will be included with Apache 2.0?
a0fb6a0980359165a4459723f52d5d7b5725f9c6Tinderbox User * Is conf/highperformance.conf-dist obsolete? It looks obsolete.