STATUS revision f6a6245816cd866361da8c576b1f47c7a54b6610
a8dda281113c5038945423320d8c9b42e3d1ddb1jwoolleyApache 2.0 STATUS:
50e60f30bdc074fbc887f0b98f4d570457ac97c9brianpLast modified at [$Date: 2000/03/21 19:28:56 $]
1d3fbd2d9f03c0826977d940a2081401edf522d4jerenkrantz Vague plan, assuming more features aren't demanded for the 2.0 release
b5cc0253789825ace46944dc9cde744be08dd77fjerenkrantz 2.0a1 : released March 10, 2000
b5cc0253789825ace46944dc9cde744be08dd77fjerenkrantz 2.0 : later in 2000
e4bb84f3c11f282d3ba66f64940b1b8e13f85e7asliveRELEASE SHOWSTOPPERS:
e4bb84f3c11f282d3ba66f64940b1b8e13f85e7aslive * Fix SAFEREAD
e4bb84f3c11f282d3ba66f64940b1b8e13f85e7aslive * Fix lingering close
ba2bab42e97405dc41c0f8fe3416f7f9a79ed7a9brianp * MPMs should have responsibility for closing sockets and
ba2bab42e97405dc41c0f8fe3416f7f9a79ed7a9brianp registering the socket cleanup. Stop registering multiple
756b54396a86db555817bb52149d91b60d00e35fwrowe cleanups for each socket. Move socket close code out of
756b54396a86db555817bb52149d91b60d00e35fwrowe http_connection.c and into the MPMs.
b4251d1fbef86f96e01c68f8de086e0dbb8bcb74trawick * Reliable piped logs look broken everywhere. Each MPM includes essentially
b4251d1fbef86f96e01c68f8de086e0dbb8bcb74trawick identical code to ap_register_other_child(), etc. Most of this code can
b4251d1fbef86f96e01c68f8de086e0dbb8bcb74trawick be moved out of the MPMs and into some common file (http_core.c?).
24efed0910118b762a4eb84830875d4714b8d315ianh Dean says presumably you mean an os-specific file?
50e60f30bdc074fbc887f0b98f4d570457ac97c9brianp * DSO hooks registered during the preflight call to ap_read_config
50e60f30bdc074fbc887f0b98f4d570457ac97c9brianp are not 'unregistered' during the preflight clean-up. Thus, when
50e60f30bdc074fbc887f0b98f4d570457ac97c9brianp Apache comes up, the hook tables contain two entries for each DSO hook,
bdbafc44d060509e86f0cc56ff4d19579438f846striker one of which is bogus, leftover from the preflight.
bdbafc44d060509e86f0cc56ff4d19579438f846striker * Pipes to CGI scripts are not being timed out
bdbafc44d060509e86f0cc56ff4d19579438f846striker Status: code has been added to APR to support timing out pipes.
bdbafc44d060509e86f0cc56ff4d19579438f846striker This needs to be used in Apache now.
6a82dfd37385024d0e94e71edd2f46b609796cfdwrowe * Put back resource limit code
6d0ec39a3ef89ce485f23008efa399b7b35bf1fdjwoolley * suEXEC doesn't work
6d0ec39a3ef89ce485f23008efa399b7b35bf1fdjwoolley Status: Manoj has posted an patch to fix this.
6d0ec39a3ef89ce485f23008efa399b7b35bf1fdjwoolley <19991103003605.A20612@samosa.mindspring.com>
0fdf8c342123fde84405b885fb1720ebc652e10djerenkrantz * Win32: Enable the Windows MPM to honor max_requests_per_child
0fdf8c342123fde84405b885fb1720ebc652e10djerenkrantz Status: Bill will fix this.
0fdf8c342123fde84405b885fb1720ebc652e10djerenkrantz * Win32: Fix Win9* specific code in the winnt MPM
6b87b6eee6a43f40ef6bead9ef3173979b4cd76crbb * Win32: Test access logging with multiple threads. Will the
6b87b6eee6a43f40ef6bead9ef3173979b4cd76crbb native file I/O calls serialize automagically like the
6b87b6eee6a43f40ef6bead9ef3173979b4cd76crbb CRT calls or do we need to add region locking each time
bfd2cedbf2918fcb95daa9f850ecdf5e24765c22jerenkrantz we access the logs?
f9a773d26994c3b267589e404cdb5b760f83e888jerenkrantz * Win32: Smoke test all ported modules to make sure they work
f9a773d26994c3b267589e404cdb5b760f83e888jerenkrantz correctly under Windows.
a250599aab6669d5877edf158032efd2538e5820trawick * Current 2.0 code is not tested on many Unix platforms. Make 2.0
a250599aab6669d5877edf158032efd2538e5820trawick work on most, if not all the systems 1.3 did
a250599aab6669d5877edf158032efd2538e5820trawick Status: Autoconf and APR will get us most of the way there.
41338e6ead3fa8d60ad3841d069f4b47e71d9177wrowe * The handler hook needs to use the new registration system
41338e6ead3fa8d60ad3841d069f4b47e71d9177wrowe * Modules. Which modules do not work yet, can we get a list?
92b0ffb9cbc04b3d9c7ce6becadc0c3d88dea2d9wrowe * We need a thread-safe resolver, at least on Unix.
92b0ffb9cbc04b3d9c7ce6becadc0c3d88dea2d9wrowe Status: The best known candidate would be something from
961ff00a8f1fe79a8ac8b18617b40a404e28cb35brianpRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
6a82dfd37385024d0e94e71edd2f46b609796cfdwrowe * "make distclean" leaves (at least these) turds:
c43fd8f8f90a7549bffe1e581eedbd087db1163estoddard modules/.deps
854cc4d3451547c2359c27870a3c354ad385a49bianh * apaci permissions problem:
02ec77ed8e15b4b601de98a322e4bd8d7d3e1ec2trawick cvs checkout apache-2.0
02ec77ed8e15b4b601de98a322e4bd8d7d3e1ec2trawick ./configure
49ada1eac7c4cae429ba193273b7f40f355d9c7ejwoolley now apaci is no longer executable and future makes fail
88425bd3442321915195ac9dfa9a80ffcd968fa4brianp * the top-level configure.in appears to use $USE_MAINTAINER_MODE = yes
88425bd3442321915195ac9dfa9a80ffcd968fa4brianp to set -Wall/etc. flags, and the APR configure.in appears to use
88425bd3442321915195ac9dfa9a80ffcd968fa4brianp --with-debug. both seem like more of a hardwired pain compaired
a8dda281113c5038945423320d8c9b42e3d1ddb1jwoolley to the pre-2.0 method of setting EXTRA_CFLAGS.
a8dda281113c5038945423320d8c9b42e3d1ddb1jwoolley * Win32: Reuse accept socket after transmitfile/close
a8dda281113c5038945423320d8c9b42e3d1ddb1jwoolley This is not a bug, but would be nice to get this feature in
37b8494ffaeb4ee9a9a2f9917d334078c16d4212jwoolley before ship.
bf3d1782a29630335a1df535eb395355ab1cd154jwoolley * Win32: Enable the winnt MPM to use the new scoreboard API
37b8494ffaeb4ee9a9a2f9917d334078c16d4212jwoolley * Win32: Non-blocking CGI pipes
da16bea08c6ff10ceb8d250ff23e8e81a372cef8jwoolley * Win32: Graceful restart of a service is broken (code does shutdown then start)
99f692732327e0c200fd639105dbf9940bd229f1rbb * Dynamically loadable MPMs
99f692732327e0c200fd639105dbf9940bd229f1rbb Enable users of the binary distributions of Apache to be able to
80f73246cc14f02d50bfac5306c079464c2dd1c6rbb dynamically load the MPM.
80f73246cc14f02d50bfac5306c079464c2dd1c6rbb Dean says this probably isn't a good idea. For example consider
80f73246cc14f02d50bfac5306c079464c2dd1c6rbb -lpthread, you couldn't have the same core run with pthreads,
80f73246cc14f02d50bfac5306c079464c2dd1c6rbb prefork, and gnu pth without a lot of headaches is my guess.
dcdc78fce34f06533df4829abbc726f7fbf207fejwoolley * Platforms that do not support fork (primarily Win32 and AS/400)
dcdc78fce34f06533df4829abbc726f7fbf207fejwoolley Consider introducing HAVE_FORK feature macro. Architect start-up code
d4a93d608a28bf331625544a2896fa20bef4a2b4rbb that avoids initializing all the modules in the parent process on
d4a93d608a28bf331625544a2896fa20bef4a2b4rbb platforms that do not support fork.
d4a93d608a28bf331625544a2896fa20bef4a2b4rbb * Clean the code. There are a lot of places we used APR but didn't
d4a93d608a28bf331625544a2896fa20bef4a2b4rbb remove the hacks that were required for the cross-platform code in
36fcd3d96b9bf9a2d4af424e64584b5dede3e3e6brianp 1.3. We need to make the code look like APR was supposed to be there.
36fcd3d96b9bf9a2d4af424e64584b5dede3e3e6brianp * Go throught the 1.3 Bug DB and research the bugs marked "suspended".
4b34d6a5b70303010612df6c87da3ee91ae86078rbb People were told these would be considered for inclusion in Apache 2.0,
4b34d6a5b70303010612df6c87da3ee91ae86078rbb it would be nice to actually do so.
4b34d6a5b70303010612df6c87da3ee91ae86078rbb * Win32: Migrate the MPM over to use APR thread/process calls. This
4b34d6a5b70303010612df6c87da3ee91ae86078rbb would eliminate some code in the Win32 branch that essentially
4b34d6a5b70303010612df6c87da3ee91ae86078rbb duplicates what is in APR.
4b34d6a5b70303010612df6c87da3ee91ae86078rbb Status: Bill <stoddard@raleigh.ibm.com> is working on this.
84bdb86d57d2a2f828b17e77ac2379fed551c2adtrawick * Move I/O layering into APR.
84bdb86d57d2a2f828b17e77ac2379fed551c2adtrawick * There are still a number of places in the code where we are
46603605c2edcc1cc84fa45634e19a395134078atrawick loosing error status (i.e. throwing away the error returned by a
46603605c2edcc1cc84fa45634e19a395134078atrawick system call and replacing it with a generic error code)
46603605c2edcc1cc84fa45634e19a395134078atrawick * Win32: Implement reliable piped logs on Windows
46603605c2edcc1cc84fa45634e19a395134078atrawick Status: Bill <stoddard@raleigh.ibm.com> has prototype code (not
86826d685f83170ca07d56550db9f0c2922a916btrawick reliable) in 1.3. Should be much cleaner with APR in 2.0.
86826d685f83170ca07d56550db9f0c2922a916btrawick * Switch to autoconf, et al. for configuration.
86826d685f83170ca07d56550db9f0c2922a916btrawick Status: Manoj has placed an initial version into the 2.0
86826d685f83170ca07d56550db9f0c2922a916btrawick repository. Todos include:
4f412c60e9c2af999619d11b236068a0e0e94944trawick - "make install" should work
4f412c60e9c2af999619d11b236068a0e0e94944trawick - a tool to simplfy third-party module building should be
4f6effa17a5084085c9104b0bb97c2ba1622cfa6jerenkrantz written. Something like apxs
4f6effa17a5084085c9104b0bb97c2ba1622cfa6jerenkrantz - Add a lot more checks to satisfy the various platforms, e.g.
4f6effa17a5084085c9104b0bb97c2ba1622cfa6jerenkrantz for threading
bfa5c37259833629155d486bb1571d39a57de64dbnicholes * Use APR to get rid of more platform dependancies.
bfa5c37259833629155d486bb1571d39a57de64dbnicholes Status: Ryan Bloom <rbb@raleigh.ibm.com> is working on this.
a946a7e607c21cf6068e7380d7e81cc2bf027913trawick * The connection status table is not very efficient. Also, very few stats
a946a7e607c21cf6068e7380d7e81cc2bf027913trawick are exported to the connection status table (easy to fix), and mod_status
c88a70518d7d0b5bccb22a68d446c2d6589790dcjwoolleyOther bugs that need fixing:
e59e4b703b7e19c4b35030e4baac8a96a8d4b504dougm * MaxRequestsPerChild measures connections, not requests.
e59e4b703b7e19c4b35030e4baac8a96a8d4b504dougm Until someone has a better way, we'll probably just rename it
e59e4b703b7e19c4b35030e4baac8a96a8d4b504dougm "MaxConnectionsPerChild".
5717c6b0b97a065a84fba32cebeee959a5fe4f15dougm * Regex containers don't work in an intutive way
5717c6b0b97a065a84fba32cebeee959a5fe4f15dougm Status: No one has come up with an efficient way to fix this
5717c6b0b97a065a84fba32cebeee959a5fe4f15dougm behavior. Dean has suggested getting rid of regex containers
5717c6b0b97a065a84fba32cebeee959a5fe4f15dougm completely.
835836eaf9e2a23192a262307b08f626e50e2180trawick * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
835836eaf9e2a23192a262307b08f626e50e2180trawick sigwaiting thread. We need to work around this, perhaps unless
835836eaf9e2a23192a262307b08f626e50e2180trawick there is hope soon for a fixed glibc.
81dddb023f9dd43b350f782972c1f75a88a2d93ftrawickOther features that need writing:
9b9e0eca165f5f464e357bb2a9b8bbfc9621067cwrowe * Finish infrastructure in core for async MPMs
9b9e0eca165f5f464e357bb2a9b8bbfc9621067cwrowe Status: post 2.0
9b9e0eca165f5f464e357bb2a9b8bbfc9621067cwrowe * TODO in source -- just do an egrep on "TODO" and see what's there
9b9e0eca165f5f464e357bb2a9b8bbfc9621067cwroweDocumentation that needs writing:
b26781e595625911fc8fc8215133ad2285ed75d8jim * The concept of MPMs, especially if we ship more than one MPM for a
b26781e595625911fc8fc8215133ad2285ed75d8jim given platform
5117466ef123b1efbc2feba168f37069ef6f230bianh * New directives in the various MPMs and appropriate links from
5117466ef123b1efbc2feba168f37069ef6f230bianh obsolete directives in core.html to the MPM documentation.
9c39f8fb982df4dbce5304e49385568e6d35bfa8trawick * Revise manual/stopping.html and the last part of
9c39f8fb982df4dbce5304e49385568e6d35bfa8trawick manual/misc/perf-tuning.html to take account of the MPMs.
bdd4aa13a97de79596cd19708f1516e8fa92700ewrowe * API documentation
bdd4aa13a97de79596cd19708f1516e8fa92700ewrowe Status: Ben Laurie has written some hooks documentation
bdd4aa13a97de79596cd19708f1516e8fa92700ewrowe * Changes since 1.3.9 can be more easily seen in the commitlog file
1d50c90ddb7e3d144ec8a2bd848ca1e7bbf8e534bnicholes dev.apache.org:/home/cvs/CVSROOT/commitlogs/apache-2.0
bdd4aa13a97de79596cd19708f1516e8fa92700ewrowe which includes some of Roy's comments when the changes were
bdd4aa13a97de79596cd19708f1516e8fa92700ewrowe committed in rough change-sets by purpose. Note that the commitlog
1d50c90ddb7e3d144ec8a2bd848ca1e7bbf8e534bnicholes does not show the contents of new files until later.
24e361af20a3107dc934b4895911ce6bcce0603ejwoolleyAvailable Patches:
24e361af20a3107dc934b4895911ce6bcce0603ejwoolley * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
4657f9b12af4b123b80e15c73fa03c190e47a8bftrawick performance
4657f9b12af4b123b80e15c73fa03c190e47a8bftrawick Status: These were written for 1.3, and are awaiting a port to
c36bac9a918f59b2dbf5dcd7d67b50c1da04c89drbbOpen issues:
c36bac9a918f59b2dbf5dcd7d67b50c1da04c89drbb * What do we do about mod_proxy?
c36bac9a918f59b2dbf5dcd7d67b50c1da04c89drbb * Which MPMs will be included with Apache 2.0?
ad668861e40da485f2eea24dc4c1f9940e470698rbb * Is conf/highperformance.conf-dist obsolete? It looks obsolete.