STATUS revision ff849e4163ed879288f0df15f78b6c9d278ec804
f743002678eb67b99bbc29fee116b65d9530fec0wroweApache 2.0 STATUS:
80833bb9a1bf25dcf19e814438a4b311d2e1f4cffuankgLast modified at [$Date: 2000/04/13 14:38:55 $]
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic 2.0a3 : vague plans to release in April sometime.
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic 2.0a2 : released March 31, 2000
4da61833a1cbbca94094f9653fd970582b97a72etrawick 2.0a1 : released March 10, 2000
4da61833a1cbbca94094f9653fd970582b97a72etrawickRELEASE SHOWSTOPPERS:
4da61833a1cbbca94094f9653fd970582b97a72etrawick * Re-work configuration for top level Apache. Work should start with
4da61833a1cbbca94094f9653fd970582b97a72etrawick trying to clean the autoconf stuff. If and only if this proves
4789804be088bcd86ae637a29cdb7fda25169521jailletc impossible to do (very unlikely), autoconf should be removed and we
4789804be088bcd86ae637a29cdb7fda25169521jailletc will roll our own config implementation.
4789804be088bcd86ae637a29cdb7fda25169521jailletc Status: Jim Jagielski is looking into this.
e50c3026198fd496f183cda4c32a202925476778covener * Put buffered file I/O back into APR. This should be done using the
e50c3026198fd496f183cda4c32a202925476778covener buffering logic from the OS/2 directory. stdio FILE *'s should not be
e50c3026198fd496f183cda4c32a202925476778covener used on Unix because of the limitations these impose on some platforms,
5b88c8507d5ef6d0c4cfbc78230294968175b638minfrin for example the 256 File * limit on Solaris.
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic * Fix SAFEREAD.
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic see <Pine.LNX.4.21.0004101511380.7822-100000@twinlark.arctic.org>
4f29b65ab4b547ad5dbe506e2d0ff5d12ead9247ylavic * MPMs should have responsibility for closing sockets and
4f29b65ab4b547ad5dbe506e2d0ff5d12ead9247ylavic registering the socket cleanup. Stop registering multiple
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic cleanups for each socket. Move socket close code out of
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic http_connection.c and into the MPMs.
69301145375a889e7e37caf7cc7321ac0f91801erpluem * Reliable piped logs look broken everywhere. Each MPM includes essentially
69301145375a889e7e37caf7cc7321ac0f91801erpluem identical code to ap_register_other_child(), etc. Most of this code can
69301145375a889e7e37caf7cc7321ac0f91801erpluem be moved out of the MPMs and into some common file (http_core.c?).
506bfe33206b2fece40ef25f695af39dd4130facjkaluza Dean says presumably you mean an os-specific file?
506bfe33206b2fece40ef25f695af39dd4130facjkaluza * Pipes to CGI scripts are not being timed out
506bfe33206b2fece40ef25f695af39dd4130facjkaluza Status: code has been added to APR to support timing out pipes.
d58a848a016d401b965111e50ef829e1641f7834minfrin This needs to be used in Apache now.
d58a848a016d401b965111e50ef829e1641f7834minfrin * Put back resource limit code
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sf * suEXEC doesn't work
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sf Status: Manoj has posted an patch to fix this.
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic <19991103003605.A20612@samosa.mindspring.com>
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic * Win32: Enable the Windows MPM to honor max_requests_per_child
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic Status: Bill will fix this.
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic * Win32: Get Apache working on Windows 95/98. The following work
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic (at least) needs to be done:
e8bd80a4bb88199d2f9a24a50345688e52d9c116ylavic - winnt MPM: Fix 95/98 code paths in the winnt MPM. There is some NT
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic specific code that is still not in NT only code paths
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic - APR sendfile uses TransmitFile which is not available on
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic - ap_stat uses GetFileAttributeEx which is not available on
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener * Win32: Test access logging with multiple threads. Will the
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener native file I/O calls serialize automagically like the
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener CRT calls or do we need to add region locking each time
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener we access the logs?
44ff304057225e944e220e981d434a046d14cf06covener * Win32: Smoke test all ported modules to make sure they work
44ff304057225e944e220e981d434a046d14cf06covener correctly under Windows.
5d1ba75b8794925e67591c209085a49279791de9covener * Current 2.0 code is not tested on many Unix platforms. Make 2.0
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrand work on most, if not all the systems 1.3 did
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrand Status: Autoconf and APR will get us most of the way there.
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrand * The handler hook needs to use the new registration system
caad2986f81ab263f7af41467dd622dc9add17f3ylavic * Modules. Which modules do not work yet, can we get a list?
caad2986f81ab263f7af41467dd622dc9add17f3ylavic * We need a thread-safe resolver, at least on Unix.
45a10d38e6051fd7bdf9d742aaae633d97ff02abjailletc Status: The best known candidate would be something from
2165214331e4afafca4048f66f303d0253d7b001covenerRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
a34684a59b60a4173c25035d0c627ef17e6dc215rpluem * Configuration Modules. Allow a new module type that reads
a34684a59b60a4173c25035d0c627ef17e6dc215rpluem a config file and sets up an internal tree structure for
1e2d421a36999d292042a5539971070d54aa6c63ylavic configuration.
1e2d421a36999d292042a5539971070d54aa6c63ylavic * "make distclean" leaves (at least these) turds:
09c87c777bed1655621bb20e1c46cb6b1a63279dcovener modules/.deps
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavic * the top-level configure.in appears to use $USE_MAINTAINER_MODE = yes
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavic to set -Wall/etc. flags, and the APR configure.in appears to use
c1a63b8fad09c419c1a64f75993feb8a343a6801ylavic --with-debug. both seem like more of a hardwired pain compaired
e6b4bd1113567627ab6bb6c6a7105e1e01a7d889jailletc to the pre-2.0 method of setting EXTRA_CFLAGS.
e466c40e1801982602ee0200c9e8b61cc148742djailletc * Win32: Reuse accept socket after transmitfile/close
e466c40e1801982602ee0200c9e8b61cc148742djailletc This is not a bug, but would be nice to get this feature in
457468b82e59d01eba00dd9d0817309c8f5e414ejim before ship.
457468b82e59d01eba00dd9d0817309c8f5e414ejim * Win32: Enable the winnt MPM to use the new scoreboard API
04983e3bd1754764eec7d6bb772fe3b0bf391771jorton * Win32: Non-blocking CGI pipes
15660979a30d251681463de2e0584853890082accovener * Win32: Graceful restart of a service is broken (code does shutdown then start)
49dacedb6c387b786b7911082ff35121a45f414bcovener * Dynamically loadable MPMs
49dacedb6c387b786b7911082ff35121a45f414bcovener Enable users of the binary distributions of Apache to be able to
cfd9415521847b2f9394fad04fb701cfb955f503rjung dynamically load the MPM.
cfd9415521847b2f9394fad04fb701cfb955f503rjung Dean says this probably isn't a good idea. For example consider
28c31fb73c1264bd1d0ff932573677030b024c7dwrowe -lpthread, you couldn't have the same core run with pthreads,
28c31fb73c1264bd1d0ff932573677030b024c7dwrowe prefork, and gnu pth without a lot of headaches is my guess.
28c31fb73c1264bd1d0ff932573677030b024c7dwrowe * Platforms that do not support fork (primarily Win32 and AS/400)
28c31fb73c1264bd1d0ff932573677030b024c7dwrowe Consider introducing HAVE_FORK feature macro. Architect start-up code
8491e0600f69b0405e156ea8a419653c065c645bcovener that avoids initializing all the modules in the parent process on
63b9f1f5880391261705f696d7d65507bbe9ace3covener platforms that do not support fork.
63b9f1f5880391261705f696d7d65507bbe9ace3covener * Clean the code. There are a lot of places we used APR but didn't
49dacedb6c387b786b7911082ff35121a45f414bcovener remove the hacks that were required for the cross-platform code in
49dacedb6c387b786b7911082ff35121a45f414bcovener 1.3. We need to make the code look like APR was supposed to be there.
49dacedb6c387b786b7911082ff35121a45f414bcovener * Go throught the 1.3 Bug DB and research the bugs marked "suspended".
3c990331fc6702119e4f5b8ba9eae3021aea5265jim People were told these would be considered for inclusion in Apache 2.0,
3c990331fc6702119e4f5b8ba9eae3021aea5265jim it would be nice to actually do so.
3c990331fc6702119e4f5b8ba9eae3021aea5265jim * Win32: Migrate the MPM over to use APR thread/process calls. This
fc42512879dd0504532f52fe5d0d0383dda96a1eniq would eliminate some code in the Win32 branch that essentially
fc42512879dd0504532f52fe5d0d0383dda96a1eniq duplicates what is in APR.
0451df5dc50fa5d8b3e07d92ee6a92e36a1181a5niq Bill says we need a new procattr, APR_CREATE_SUSPENDED (or
0451df5dc50fa5d8b3e07d92ee6a92e36a1181a5niq something similar) to direct ap_create_process to create the
0451df5dc50fa5d8b3e07d92ee6a92e36a1181a5niq process suspended. We also need a call to wake up the suspended
da0442c0440caef34706e2c2f3af05cb65921cc0jailletc process This may not be able to be implemented everywhere though.
06b8f183140c8e02e0974e938a05078b511d1603covener * Move I/O layering into APR.
06b8f183140c8e02e0974e938a05078b511d1603covener * There are still a number of places in the code where we are
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluem loosing error status (i.e. throwing away the error returned by a
259878293a997ff49f5ddfc53d3739cbdc25444ecovener system call and replacing it with a generic error code)
259878293a997ff49f5ddfc53d3739cbdc25444ecovener * Win32: Implement reliable piped logs on Windows
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrin * Switch to autoconf, et al. for configuration.
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrin Status: Manoj has placed an initial version into the 2.0
b54b024c06a19926832d77d40ba35ad8c41e4d3dminfrin repository. Todos include:
65967d05f839dbf27cf91d91fa79585eeae19660minfrin - "make install" should work
65967d05f839dbf27cf91d91fa79585eeae19660minfrin - a tool to simplfy third-party module building should be
65967d05f839dbf27cf91d91fa79585eeae19660minfrin written. Something like apxs
8152945ae46857b170cb227e79bb799f4fc7710dminfrin - Add a lot more checks to satisfy the various platforms, e.g.
8152945ae46857b170cb227e79bb799f4fc7710dminfrin for threading
8152945ae46857b170cb227e79bb799f4fc7710dminfrin * Use APR to get rid of more platform dependancies.
75f5c2db254c0167a0e396254460de09b775d203trawick Status: Ryan Bloom <rbb@covalenet.net> is working on this.
75f5c2db254c0167a0e396254460de09b775d203trawick * The connection status table is not very efficient. Also, very few stats
4f0358189bfa57b8e75bd6b94db264302a8f336amrumph are exported to the connection status table (easy to fix), and mod_status
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick * Optimise the name-based <VirtualHost> implementation so that it uses
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick a hash table instead of a linear linked list scan.
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick * Mass vhosting version of suEXEC.
54d750a84a175d8e338880514d440773eb986b50covenerOther bugs that need fixing:
54d750a84a175d8e338880514d440773eb986b50covener * MaxRequestsPerChild measures connections, not requests.
54d750a84a175d8e338880514d440773eb986b50covener Until someone has a better way, we'll probably just rename it
54d750a84a175d8e338880514d440773eb986b50covener "MaxConnectionsPerChild".
54d750a84a175d8e338880514d440773eb986b50covener * Regex containers don't work in an intutive way
7a3aa12f0eda24793ee26d6a179bd53132e9dae8covener Status: No one has come up with an efficient way to fix this
54d750a84a175d8e338880514d440773eb986b50covener behavior. Dean has suggested getting rid of regex containers
54d750a84a175d8e338880514d440773eb986b50covener completely.
4e30ef014533a7e93c92d88306291f5e49c9692ftrawick * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
83b50288fa7d306324bba68832011ea08f5c7832covener sigwaiting thread. We need to work around this, perhaps unless
5f066f496cd9f20a2a701255bc67d44e7cb46daetrawick there is hope soon for a fixed glibc.
5f066f496cd9f20a2a701255bc67d44e7cb46daetrawickOther features that need writing:
2e15620d724fb8e3a5be183b917359a2fd6e9468covener * Finish infrastructure in core for async MPMs
2e15620d724fb8e3a5be183b917359a2fd6e9468covener Status: post 2.0
1b988c41ee505962781d110a3e4c2c90f1ea0aa4covener * TODO in source -- just do an egrep on "TODO" and see what's there
1b988c41ee505962781d110a3e4c2c90f1ea0aa4covenerDocumentation that needs writing:
1b988c41ee505962781d110a3e4c2c90f1ea0aa4covener * Mod_status docs are needed.
b8efdc95bec9cf089aa1be0bfd07d46aa1137a7acovener * The concept of MPMs, especially if we ship more than one MPM for a
b8efdc95bec9cf089aa1be0bfd07d46aa1137a7acovener given platform
f06e7c4b1bce6b6491e5de0b7998d3f5696b293dchrisd * New directives in the various MPMs and appropriate links from
f06e7c4b1bce6b6491e5de0b7998d3f5696b293dchrisd obsolete directives in core.html to the MPM documentation.
179565be4043d7e5f9161aa75271fa0a001866d9covener * Revise manual/stopping.html and the last part of
179565be4043d7e5f9161aa75271fa0a001866d9covener manual/misc/perf-tuning.html to take account of the MPMs.
fce4949fb0b309a5744afcd503c6ed2d35621ee2covener * API documentation
fce4949fb0b309a5744afcd503c6ed2d35621ee2covener Status: Ben Laurie has written some hooks documentation
7b7430e701e9a31ce809da7c220bb8dfcf68c86etrawick * Changes since 1.3.9 can be more easily seen in the commitlog file
7b7430e701e9a31ce809da7c220bb8dfcf68c86etrawick dev.apache.org:/home/cvs/CVSROOT/commitlogs/apache-2.0
7b7430e701e9a31ce809da7c220bb8dfcf68c86etrawick which includes some of Roy's comments when the changes were
ccc20788c1e5fc973f36df634399c89acb70deaejerenkrantz committed in rough change-sets by purpose. Note that the commitlog
ccc20788c1e5fc973f36df634399c89acb70deaejerenkrantz does not show the contents of new files until later.
273e512f20f262e5e2aa8e0e83371d1929fb76adjkaluzaAvailable Patches:
273e512f20f262e5e2aa8e0e83371d1929fb76adjkaluza * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
efe780dcf13b2b95effabf897d694d8f23feac74trawick performance
fe83f60b41477b14a37edcfcd1f7f5c5a1ebfe44minfrin Status: These were written for 1.3, and are awaiting a port to
993d1261a278d7322bccef219101220b7b4fb8c5jkaluzaOpen issues:
993d1261a278d7322bccef219101220b7b4fb8c5jkaluza * What do we do about mod_proxy?
ba050a6f942b9fa0e81ed73437588005c569655ccovener * Which MPMs will be included with Apache 2.0?
ba050a6f942b9fa0e81ed73437588005c569655ccovener * Is conf/highperformance.conf-dist obsolete? It looks obsolete.