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