STATUS revision ff849e4163ed879288f0df15f78b6c9d278ec804
f743002678eb67b99bbc29fee116b65d9530fec0wroweApache 2.0 STATUS:
80833bb9a1bf25dcf19e814438a4b311d2e1f4cffuankgLast modified at [$Date: 2000/04/13 14:38:55 $]
a34684a59b60a4173c25035d0c627ef17e6dc215rpluem
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavicRelease:
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic 2.0a3 : vague plans to release in April sometime.
1337c7673efc1f80f634139fbad7cbb98a0dc657ylavic 2.0a2 : released March 31, 2000
4da61833a1cbbca94094f9653fd970582b97a72etrawick 2.0a1 : released March 10, 2000
4da61833a1cbbca94094f9653fd970582b97a72etrawick
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.
4789804be088bcd86ae637a29cdb7fda25169521jailletc
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.
5b88c8507d5ef6d0c4cfbc78230294968175b638minfrin
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic * Fix SAFEREAD.
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic see <Pine.LNX.4.21.0004101511380.7822-100000@twinlark.arctic.org>
6c3b9cebb551140fbb25d58bae08b539b3802133ylavic
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.
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic Status:
0a0df13b7f1f4f1a74fe295253d89ca3911b301aylavic
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
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
d58a848a016d401b965111e50ef829e1641f7834minfrin * Put back resource limit code
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sf
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sf * suEXEC doesn't work
2e6f4d654c96c98b761fb012fd25c5d5b1558c44sf Status: Manoj has posted an patch to fix this.
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic <19991103003605.A20612@samosa.mindspring.com>
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic * Win32: Enable the Windows MPM to honor max_requests_per_child
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic Status: Bill will fix this.
17e6c95f3b22d18acdf8380fb26a8d0e10c80767ylavic
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 95/98.
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic - ap_stat uses GetFileAttributeEx which is not available on
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic 95/98
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic
330e16bea8fe9cace4de90c349750c03dfb1fe64ylavic Status:
d7205b1a86c51c27b71a2c458dc453fd53a261c1covener
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 Status:
44ff304057225e944e220e981d434a046d14cf06covener
44ff304057225e944e220e981d434a046d14cf06covener * Win32: Smoke test all ported modules to make sure they work
44ff304057225e944e220e981d434a046d14cf06covener correctly under Windows.
5d1ba75b8794925e67591c209085a49279791de9covener Status:
5d1ba75b8794925e67591c209085a49279791de9covener
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
032982212dbcc7c3cce95bf89c503bb56e185ac7kbrand * The handler hook needs to use the new registration system
caad2986f81ab263f7af41467dd622dc9add17f3ylavic
caad2986f81ab263f7af41467dd622dc9add17f3ylavic * Modules. Which modules do not work yet, can we get a list?
caad2986f81ab263f7af41467dd622dc9add17f3ylavic
caad2986f81ab263f7af41467dd622dc9add17f3ylavic * We need a thread-safe resolver, at least on Unix.
45a10d38e6051fd7bdf9d742aaae633d97ff02abjailletc Status: The best known candidate would be something from
f7317ff316c2b141feea31bddb74d5d3fa1584edjorton BIND v9.
f7317ff316c2b141feea31bddb74d5d3fa1584edjorton
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
1e2d421a36999d292042a5539971070d54aa6c63ylavic * "make distclean" leaves (at least these) turds:
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedooh lib/.deps
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedooh lib/apr/.deps
fa7ed98b9dc94c5845cf845aea0a44ecacd290c9humbedooh lib/apr/shmem/unix/mm/config.log
0b67eb8568cd58bb77082703951679b42cf098actrawick lib/apr/shmem/unix/mm/mm_conf.h
0b67eb8568cd58bb77082703951679b42cf098actrawick lib/apr/shmem/unix/mm/libtool
0b67eb8568cd58bb77082703951679b42cf098actrawick lib/apr/shmem/unix/mm/config.status
0b67eb8568cd58bb77082703951679b42cf098actrawick lib/apr/shmem/unix/mm/Makefile
5ef3c61605a3a021ff71f488983cb0065f8e1a79covener lib/apr/shmem/unix/mm/mm-config
fb1985a97912b25ec6564c73e610a31e5fc6e25fcovener main/a
09c87c777bed1655621bb20e1c46cb6b1a63279dcovener modules/.deps
6502b7b32f980cc2093bb3ebce37e5e4dc68fba4ylavic modules/mpm/.deps
6502b7b32f980cc2093bb3ebce37e5e4dc68fba4ylavic os/.deps
3060ce7f798fbda7999cd4ddf89b525d2b294185covener
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.
e6b4bd1113567627ab6bb6c6a7105e1e01a7d889jailletc
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
457468b82e59d01eba00dd9d0817309c8f5e414ejim * Win32: Enable the winnt MPM to use the new scoreboard API
04983e3bd1754764eec7d6bb772fe3b0bf391771jorton
04983e3bd1754764eec7d6bb772fe3b0bf391771jorton * Win32: Non-blocking CGI pipes
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluem
15660979a30d251681463de2e0584853890082accovener * Win32: Graceful restart of a service is broken (code does shutdown then start)
15660979a30d251681463de2e0584853890082accovener
49dacedb6c387b786b7911082ff35121a45f414bcovener * Dynamically loadable MPMs
49dacedb6c387b786b7911082ff35121a45f414bcovener Enable users of the binary distributions of Apache to be able to
cfd9415521847b2f9394fad04fb701cfb955f503rjung dynamically load the MPM.
cfd9415521847b2f9394fad04fb701cfb955f503rjung
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
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
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
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
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.
fc42512879dd0504532f52fe5d0d0383dda96a1eniq
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.
983528026996668ea295be95aedb9c7a346af470ylavic
da0442c0440caef34706e2c2f3af05cb65921cc0jailletc Status:
da0442c0440caef34706e2c2f3af05cb65921cc0jailletc
06b8f183140c8e02e0974e938a05078b511d1603covener * Move I/O layering into APR.
06b8f183140c8e02e0974e938a05078b511d1603covener
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
259878293a997ff49f5ddfc53d3739cbdc25444ecovener * Win32: Implement reliable piped logs on Windows
259878293a997ff49f5ddfc53d3739cbdc25444ecovener Status:
15890c9306ba98f6fc243e15a3c4778ddc7d773erpluem
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
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
8152945ae46857b170cb227e79bb799f4fc7710dminfrin * Use APR to get rid of more platform dependancies.
75f5c2db254c0167a0e396254460de09b775d203trawick Status: Ryan Bloom <rbb@covalenet.net> is working on this.
75f5c2db254c0167a0e396254460de09b775d203trawick
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
4f0358189bfa57b8e75bd6b94db264302a8f336amrumph is ugly.
4f0358189bfa57b8e75bd6b94db264302a8f336amrumph
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick * Optimise the name-based <VirtualHost> implementation so that it uses
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick a hash table instead of a linear linked list scan.
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick
5716f9c6daa92dde5f2f9d11ed63f7c9549c223atrawick * Mass vhosting version of suEXEC.
54d750a84a175d8e338880514d440773eb986b50covener
54d750a84a175d8e338880514d440773eb986b50covenerOther bugs that need fixing:
54d750a84a175d8e338880514d440773eb986b50covener
54d750a84a175d8e338880514d440773eb986b50covener * MaxRequestsPerChild measures connections, not requests.
54d750a84a175d8e338880514d440773eb986b50covener Until someone has a better way, we'll probably just rename it
54d750a84a175d8e338880514d440773eb986b50covener "MaxConnectionsPerChild".
54d750a84a175d8e338880514d440773eb986b50covener
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.
83b50288fa7d306324bba68832011ea08f5c7832covener
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.
5f066f496cd9f20a2a701255bc67d44e7cb46daetrawick
5f066f496cd9f20a2a701255bc67d44e7cb46daetrawickOther features that need writing:
2e15620d724fb8e3a5be183b917359a2fd6e9468covener
2e15620d724fb8e3a5be183b917359a2fd6e9468covener * Finish infrastructure in core for async MPMs
2e15620d724fb8e3a5be183b917359a2fd6e9468covener Status: post 2.0
2e15620d724fb8e3a5be183b917359a2fd6e9468covener
1b988c41ee505962781d110a3e4c2c90f1ea0aa4covener * TODO in source -- just do an egrep on "TODO" and see what's there
1b988c41ee505962781d110a3e4c2c90f1ea0aa4covener
1b988c41ee505962781d110a3e4c2c90f1ea0aa4covenerDocumentation that needs writing:
1b988c41ee505962781d110a3e4c2c90f1ea0aa4covener * Mod_status docs are needed.
b8efdc95bec9cf089aa1be0bfd07d46aa1137a7acovener
b8efdc95bec9cf089aa1be0bfd07d46aa1137a7acovener * The concept of MPMs, especially if we ship more than one MPM for a
b8efdc95bec9cf089aa1be0bfd07d46aa1137a7acovener given platform
f06e7c4b1bce6b6491e5de0b7998d3f5696b293dchrisd
f06e7c4b1bce6b6491e5de0b7998d3f5696b293dchrisd * New directives in the various MPMs and appropriate links from
f06e7c4b1bce6b6491e5de0b7998d3f5696b293dchrisd obsolete directives in core.html to the MPM documentation.
179565be4043d7e5f9161aa75271fa0a001866d9covener
179565be4043d7e5f9161aa75271fa0a001866d9covener * Revise manual/stopping.html and the last part of
179565be4043d7e5f9161aa75271fa0a001866d9covener manual/misc/perf-tuning.html to take account of the MPMs.
111436a32ba1254291e4883292fb116d15fe8f64covener
fce4949fb0b309a5744afcd503c6ed2d35621ee2covener * API documentation
fce4949fb0b309a5744afcd503c6ed2d35621ee2covener Status: Ben Laurie has written some hooks documentation
fce4949fb0b309a5744afcd503c6ed2d35621ee2covener (apache-2.0/htdocs/hooks.html)
fce4949fb0b309a5744afcd503c6ed2d35621ee2covener
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.
ccc20788c1e5fc973f36df634399c89acb70deaejerenkrantz
273e512f20f262e5e2aa8e0e83371d1929fb76adjkaluzaAvailable Patches:
273e512f20f262e5e2aa8e0e83371d1929fb76adjkaluza
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
fe83f60b41477b14a37edcfcd1f7f5c5a1ebfe44minfrin 2.0
fe83f60b41477b14a37edcfcd1f7f5c5a1ebfe44minfrin
993d1261a278d7322bccef219101220b7b4fb8c5jkaluzaOpen issues:
993d1261a278d7322bccef219101220b7b4fb8c5jkaluza
993d1261a278d7322bccef219101220b7b4fb8c5jkaluza * What do we do about mod_proxy?
ba050a6f942b9fa0e81ed73437588005c569655ccovener
ba050a6f942b9fa0e81ed73437588005c569655ccovener * Which MPMs will be included with Apache 2.0?
ba050a6f942b9fa0e81ed73437588005c569655ccovener
ba050a6f942b9fa0e81ed73437588005c569655ccovener * Is conf/highperformance.conf-dist obsolete? It looks obsolete.
135ddda3a989215d2bedbcf1529bfb269c3eda23niq
135ddda3a989215d2bedbcf1529bfb269c3eda23niq