STATUS revision d208bda4a893cc81ed5d3ed1cdd7d706e012bd42
c330021bf3f45cbf187fa644781e67f7e470a58awroweApache 2.0 STATUS:
942f9b7d835bb864a76719c131efcf3861450c96jerenkrantzLast modified at [$Date: 2000/04/04 22:28:49 $]
c330021bf3f45cbf187fa644781e67f7e470a58awrowe
c330021bf3f45cbf187fa644781e67f7e470a58awroweRelease:
c330021bf3f45cbf187fa644781e67f7e470a58awrowe
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
af4c982a7cf4515f124935f99a329744035fc699slive
af4c982a7cf4515f124935f99a329744035fc699sliveRELEASE SHOWSTOPPERS:
af4c982a7cf4515f124935f99a329744035fc699slive
af4c982a7cf4515f124935f99a329744035fc699slive * Fix SAFEREAD
af4c982a7cf4515f124935f99a329744035fc699slive
af4c982a7cf4515f124935f99a329744035fc699slive * Fix lingering close
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe Status:
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe
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.
d96ee8cda2799e1f2743c1603adeb4833ed0e15fslive Status:
d96ee8cda2799e1f2743c1603adeb4833ed0e15fslive
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?
5ca8e11fadb6f7a8d9d0367c1800205c99d4bcd6jerenkrantz
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
f6a9b598f78b2e745456bfc4bbc4afd2d1572aa9stas * Put back resource limit code
f6a9b598f78b2e745456bfc4bbc4afd2d1572aa9stas
f6a9b598f78b2e745456bfc4bbc4afd2d1572aa9stas * suEXEC doesn't work
f6a9b598f78b2e745456bfc4bbc4afd2d1572aa9stas Status: Manoj has posted an patch to fix this.
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz <19991103003605.A20612@samosa.mindspring.com>
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz
a3f7a6fb4aedec8585efd990cf99d3917b99a0d3jim * Win32: Enable the Windows MPM to honor max_requests_per_child
a3f7a6fb4aedec8585efd990cf99d3917b99a0d3jim Status: Bill will fix this.
a3f7a6fb4aedec8585efd990cf99d3917b99a0d3jim
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 95/98.
9fdeef48d40b7dd34c57d74fcc50a0c6924a4f1dstoddard - ap_stat uses GetFileAttributeEx which is not available on
9fdeef48d40b7dd34c57d74fcc50a0c6924a4f1dstoddard 95/98
9fdeef48d40b7dd34c57d74fcc50a0c6924a4f1dstoddard
9fdeef48d40b7dd34c57d74fcc50a0c6924a4f1dstoddard Status:
9fdeef48d40b7dd34c57d74fcc50a0c6924a4f1dstoddard
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 Status:
9fdeef48d40b7dd34c57d74fcc50a0c6924a4f1dstoddard
9fdeef48d40b7dd34c57d74fcc50a0c6924a4f1dstoddard * Win32: Smoke test all ported modules to make sure they work
9fdeef48d40b7dd34c57d74fcc50a0c6924a4f1dstoddard correctly under Windows.
9fdeef48d40b7dd34c57d74fcc50a0c6924a4f1dstoddard Status:
9fdeef48d40b7dd34c57d74fcc50a0c6924a4f1dstoddard
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.
1e82fcef33ad0da9e76fbb1f5e440b691a8b3551jerenkrantz
a3f7a6fb4aedec8585efd990cf99d3917b99a0d3jim * The handler hook needs to use the new registration system
f95a0b59eb24c631f15bd83e20c6cf823c432d83trawick
f95a0b59eb24c631f15bd83e20c6cf823c432d83trawick * Modules. Which modules do not work yet, can we get a list?
f95a0b59eb24c631f15bd83e20c6cf823c432d83trawick
c95a8116bde20ab75f2e54d0e867bdf2e13643c3jim * We need a thread-safe resolver, at least on Unix.
b08ed1b8a8afa3d8466300f4607b9d1179d2f1eaerikabele Status: The best known candidate would be something from
b08ed1b8a8afa3d8466300f4607b9d1179d2f1eaerikabele BIND v9.
13402b2193f52031b2acfbee2b0965e02f3f29b4wrowe
f95a0b59eb24c631f15bd83e20c6cf823c432d83trawickRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
f95a0b59eb24c631f15bd83e20c6cf823c432d83trawick
418f39e60a288f855ec033b566744489c3bbbf39trawick * "make distclean" leaves (at least these) turds:
cc22a72861c58dda7f3768613aec864e4c4e0353striker lib/.deps
f95a0b59eb24c631f15bd83e20c6cf823c432d83trawick lib/apr/.deps
ddafc111b94558ef4e2d7357ceda623315566ce3slive lib/apr/shmem/unix/mm/config.log
ddafc111b94558ef4e2d7357ceda623315566ce3slive lib/apr/shmem/unix/mm/mm_conf.h
b08ed1b8a8afa3d8466300f4607b9d1179d2f1eaerikabele lib/apr/shmem/unix/mm/libtool
ddafc111b94558ef4e2d7357ceda623315566ce3slive lib/apr/shmem/unix/mm/config.status
93f189f1198f539d3cfa75a15b23dcde60ee35ffrbb lib/apr/shmem/unix/mm/Makefile
93f189f1198f539d3cfa75a15b23dcde60ee35ffrbb lib/apr/shmem/unix/mm/mm-config
bca5b27d271b6e1690134a83963424b9825d93bdstriker main/a
bca5b27d271b6e1690134a83963424b9825d93bdstriker modules/.deps
b08ed1b8a8afa3d8466300f4607b9d1179d2f1eaerikabele modules/mpm/.deps
13402b2193f52031b2acfbee2b0965e02f3f29b4wrowe os/.deps
13402b2193f52031b2acfbee2b0965e02f3f29b4wrowe
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
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
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz * Win32: Enable the winnt MPM to use the new scoreboard API
b9b0788ea79de3ee230ccb0abf93a0c2c08f6287lars
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantz * Win32: Non-blocking CGI pipes
7718f3d5b4da70eb063877f5300ee361435910f4nd
38d2c5d41cdb5eb28668d0290b59f8c76ae2a4bfjim * Win32: Graceful restart of a service is broken (code does shutdown then start)
38d2c5d41cdb5eb28668d0290b59f8c76ae2a4bfjim
38d2c5d41cdb5eb28668d0290b59f8c76ae2a4bfjim * Dynamically loadable MPMs
7718f3d5b4da70eb063877f5300ee361435910f4nd Enable users of the binary distributions of Apache to be able to
b9b0788ea79de3ee230ccb0abf93a0c2c08f6287lars dynamically load the MPM.
b9b0788ea79de3ee230ccb0abf93a0c2c08f6287lars
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.
1af5c0e25a649bb298e25ddfa5418fa18bdcb107aaron
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.
b05930e6008f69bd323abe0c10f81f40ffd27983brianp
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
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
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
0723420d6007137272f4f140ffd17035b17c1563nd * Move I/O layering into APR.
0723420d6007137272f4f140ffd17035b17c1563nd
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
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
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
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
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe * Use APR to get rid of more platform dependancies.
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe Status: Ryan Bloom <rbb@raleigh.ibm.com> is working on this.
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe
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
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe is ugly.
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe
f610c7c704235bc327dbe9b62982f5b3f8e30a77wroweOther bugs that need fixing:
c330021bf3f45cbf187fa644781e67f7e470a58awrowe
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe * MaxRequestsPerChild measures connections, not requests.
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe Until someone has a better way, we'll probably just rename it
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe "MaxConnectionsPerChild".
f610c7c704235bc327dbe9b62982f5b3f8e30a77wrowe
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
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.
f881b8be216de36c6b964324c772450bca38a4e6trawick
f881b8be216de36c6b964324c772450bca38a4e6trawickOther features that need writing:
f881b8be216de36c6b964324c772450bca38a4e6trawick
f881b8be216de36c6b964324c772450bca38a4e6trawick * Finish infrastructure in core for async MPMs
f881b8be216de36c6b964324c772450bca38a4e6trawick Status: post 2.0
f881b8be216de36c6b964324c772450bca38a4e6trawick
56b2562cb4041a21bc313fde3204beabdb758800jwoolley * TODO in source -- just do an egrep on "TODO" and see what's there
b05930e6008f69bd323abe0c10f81f40ffd27983brianp
b05930e6008f69bd323abe0c10f81f40ffd27983brianpDocumentation that needs writing:
b05930e6008f69bd323abe0c10f81f40ffd27983brianp
b05930e6008f69bd323abe0c10f81f40ffd27983brianp * The concept of MPMs, especially if we ship more than one MPM for a
b05930e6008f69bd323abe0c10f81f40ffd27983brianp given platform
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolley
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolley * New directives in the various MPMs and appropriate links from
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolley obsolete directives in core.html to the MPM documentation.
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolley
bb2a72a6e2327ae4f177c9d26e9d433033cfc27eaaron * Revise manual/stopping.html and the last part of
8c8fbb8546af54582539898be704411a60058d85trawick manual/misc/perf-tuning.html to take account of the MPMs.
8c8fbb8546af54582539898be704411a60058d85trawick
8c8fbb8546af54582539898be704411a60058d85trawick * API documentation
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddard Status: Ben Laurie has written some hooks documentation
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddard (apache-2.0/htdocs/hooks.html)
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddard
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.
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweAvailable Patches:
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
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
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe 2.0
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweOpen issues:
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe * What do we do about mod_proxy?
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe * Which MPMs will be included with Apache 2.0?
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe * Is conf/highperformance.conf-dist obsolete? It looks obsolete.
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe