STATUS revision afbd720d176856630fed7c6576cdd3ae25a407ed
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian MaederAPACHE 2.1 STATUS: -*-text-*-
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian MaederLast modified at [$Date: 2002/12/03 18:26:44 $]
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian MaederRelease [NOTE that only Alpha/Beta releases occur in 2.1 development]:
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder 2.1.0 : in development
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian MaederPlease consult the following STATUS files for information
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maederon related projects:
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian MaederContributors looking for a mission:
8adae8b1eb0dd8562f0d1541b9ecb2fd80bda7e7Christian Maeder * just do an egrep on "TODO" or "XXX" and see what's there
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian MaederCURRENT RELEASE NOTES:
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian MaederRELEASE SHOWSTOPPERS:
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian MaederCURRENT VOTES:
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder a) httpd-std.conf should be tailored by install (from src or
2b4130336e941b7d01c78a6da55449a4c6eca609Till Mossakowski binbuild) even if user has existing httpd.conf
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder +1: trawick, slive, gregames, ianh, Ken, wrowe, jwoolley, jim
9ecf13b5fd914bc7272f1fc17348d7f4a8c77061Christian Maeder wrowe - prefer httpd.default.conf to avoid ambiguity with cvs
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder b) tailored httpd-std.conf should be copied by install to
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder c) tailored httpd-std.conf should be installed to
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder sysconfdir/examples or manualdir/exampleconf/
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder +1: slive, trawick, Ken
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder d) Installing a set of default config files when upgrading a server
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder doesn't make ANY sense at all.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder +1: ianh - medium/big sites don't use 'standard config' anyway, as it
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder usually needs major customizations
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder -1: Ken, wrowe, jwoolley, jim
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder wrowe - diff is wonderful when comparing old/new default configs,
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder even for customized sites that ianh mentions
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder jim - ... assuming that the default configs have been updated
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder with the required inline docs to explain the
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * If the parent process dies, should the remaining child processes
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder "gracefully" self-terminate. Or maybe we should make it a runtime
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder option, or have a concept of 2 parent processes (one being a
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder "hot spare").
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder Self-destruct: Ken, Martin
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder Not self-destruct: BrianP, Ian, Cliff, BillS
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder Make it runtime configurable: Aaron, jim, Justin, wrowe, rederpj
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder /* The below was a concept on *how* to handle the problem */
90c174bac60a72ffd81bc3bf5ae2dd9a61943b8bChristian Maeder Have 2 parents: +1: jim
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder -1: Justin, wrowe, rederpj
26d11a256b1433604a3dbc69913b520fff7586acChristian Maeder +0: Martin (while standing by, could it do
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder something useful?)
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder * Make the worker MPM the default MPM for threaded Unix boxes.
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder +1: Justin, Ian, Cliff, BillS, striker, wrowe
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder +0: BrianP, Aaron (mutex contention is looking better with the
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder latest code, let's continue tuning and testing), rederpj, jim
03136b84a0c70d877e227444f0875e209506b9e4Christian MaederRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder * There is a bug in how we sort some hooks, at least the pre-config
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder hook. The first time we call the hooks, they are in the correct
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder order, but the second time, we don't sort them correctly. Currently,
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder the modules/http/config.m4 file has been renamed to
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder modules/http/config2.m4 to work around this problem, it should moved
986d3f255182539098a97ac86da9eeee5b7a72e3Christian Maeder back when this is fixed.
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder OtherBill offers that this is a SERIOUS problem. We do not sort
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder correctly by the ordering arguments passed to the register hook
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder functions. This was proven when I reordered the open_logs hook
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder to attempt to open the error logs prior to the access logs. Possibly
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder the entire sorting code needs to be refactored.
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder * pipes deadlock on all platforms with limited pipe buffers (e.g. both
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder Linux and Win32, as opposed to only Win32 on 1.3). The right solution
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder is either GStein's proposal for a "CGI Brigade", or OtherBill's proposal
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder for "Poll Buckets" for "Polling Filter Chains". Or maybe both :-)
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder * All handlers should always send content down even if r->header_only
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder is set. If not, it means that the HEAD requests don't generate the
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder same headers as a GET which is wrong.
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder * HP/UX 10.20: compile breakage in APR. Looks like it should be easy
2b4130336e941b7d01c78a6da55449a4c6eca609Till Mossakowski to fix, probably just some extraneous #include's that are fouling
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder Jeff: See my reply and patch in the PR (and previous commit to
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder stop using "pipe" as a field name). If patch is committed, we
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder should be okay. I'll wait to see if the user tests the patch.
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder Update by Jeff 20020722: I got an account on HP 10.20. It looks
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder like some of the APR thread detection is screwed up. If we find
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder pthread.h but we can't compile the pthread test program we still
2b4130336e941b7d01c78a6da55449a4c6eca609Till Mossakowski think we can use threads. For that reason, the patch I posted
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder to the PR won't work as-is since a failed compile of the test
1f086d5155f47fdad9a0de4e46bbebb2c4b33d30Christian Maeder program means nothing.
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder * exec cmd and suexec arg-passing enhancements
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder Status: Patches proposed
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder Message-ID: <20020526041748.A29148@prodigy.Redbrick.DCU.IE>
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder (see the "proc.patch" and "suexec-shell.patch" links in this message)
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder * The 2.0.36 worker MPM graceless shutdown changes work but are
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder a bit clunky on some platforms; eg, on Linux, the loop to
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder join each worker thread seems to hang, and the parent ends up
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder killing off the child with SIGKILL. But at least it shuts down.
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder * --enable-mods-shared="foo1 foo2" is busted on Darwin. Pier
def4be60beab1d7285732ebcebad96fad7484120Christian Maeder posted a patch (Message-ID: <B8DBBE8D.575A%pier@betaversion.org>).
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder * We do not properly substitute the prefix-variables in the configuration
cfef1cb40723f3d5273e460ec391335220b21324Christian Maeder scripts or generated-configs. (i.e. if sysconfdir is etc,
1f086d5155f47fdad9a0de4e46bbebb2c4b33d30Christian Maeder httpd-std.conf points to conf.)
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder * If any request gets through ap_process_request_internal() and is
cfef1cb40723f3d5273e460ec391335220b21324Christian Maeder scheduled to be served by the core handler, without a flag that this
1f086d5155f47fdad9a0de4e46bbebb2c4b33d30Christian Maeder r->filename was tested by dir/file_walk, we need to 500 at the very
cfef1cb40723f3d5273e460ec391335220b21324Christian Maeder end of the ap_process_request_internal() processing so sub_req-esters
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder know this request cannot be run. This provides authors of older
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder modules better compatibility, while still improving the security and
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder robustness of 2.0.
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder Status: still need to decide where this goes, OtherBill comments...
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net>
42c01284bba8d7c8d995c8dfb96ace57d28ed1bcTill Mossakowski [Deleted comments regarding the ap_run_handler phase, as irrelevant
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder as BillS points out that "common case will be caught in
fe19deda2fe2570f9d599e58fdbc991248d08325Till Mossakowski default_handler already (with the r->finfo.filetype == 0 check)"
f7d2e793728bbb7fd185e027eb9dfd7b9dd11c21Christian Maeder and the issue is detecting this -before- we try to run the req.]
fe19deda2fe2570f9d599e58fdbc991248d08325Till Mossakowski gregames says: can this happen somehow without a broken module
fe19deda2fe2570f9d599e58fdbc991248d08325Till Mossakowski being involved? If not, why waste cycles trying to defend against
fe19deda2fe2570f9d599e58fdbc991248d08325Till Mossakowski potential broken modules? It seems futile.
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang wrowe counters: no, it shouldn't happen unless the module is broken.
8adae8b1eb0dd8562f0d1541b9ecb2fd80bda7e7Christian Maeder But the right answer is to fail the request up-front in dir/file
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder walk if the path was entirely invalid; and we can't do that either
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang UNTIL 2.1 or we break modules that haven't hooked map_to_storage.
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder * With AP_MODE_EXHAUSTIVE in the core, it is finally clear to me
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang how the Perchild MPM should be re-written. It hasn't worked
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang correctly since filters were added because it wasn't possible to
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang get the content that had already been written and the socket at
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder the same time. This mode lets us do that, so the MPM can be
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * htpasswd blindly processes the file you give it, and does no
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder sanity checking before totally corrupting whatever file it was
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder you thought you had. It should check the input file and bail
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder if it finds non-comment lines that do not contain exactly 1
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder ':' character.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder Message-ID: <20020217150457.A31632@clove.org>
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Can a static httpd be built reliably?
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder Message-ID: <20020207142751.T31582@clove.org>
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder * [Ken] Test suite failures:
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder o worker is also failing some of the 'cgi' subtests
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder (see <URL:http://Source-Zone.Org/Apache/regression/>):
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder Justin says: "Worker should be fine and passes httpd-test here.
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder I think it's a perl or a httpd-test problem."
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder * Usage of APR_BRIGADE_NORMALIZE in core_input_filter should be
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder removed if possible.
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder Message-ID: <Pine.LNX.4.33.0201202232430.318-100000@deepthought.cs.virginia.edu>
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder Jeff wonders if we still care about this. It is no longer an
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder API issue but simply an extra trip through the brigade.
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder * The Add...Filter and Set...Filter directives do not allow the
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder administrator to order filters, beyond the order of filename (mime)
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder extensions. It isn't clear if Set...Filter(s) should be inserted
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder before or after the Add...Filter(s) which are ordered by sequence of
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder filename extensions. At minimum, some sort of +-[0-10] syntax seems
c438c79d00fc438f99627e612498744bdc0d0c89Christian Maeder like a nice solution. See ROADMAP.
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang * Get perchild to work on platforms other than Linux. This
c554b3175bf1c2291e4ab2a51a4af3f82a8104d7Christian Maeder will require a portable mechanism to pass data and file/socket
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang descriptors between vhost child groups. An API was proposed
db453fe9625a9dab5d108f7a5e464598814144b8Jian Chun Wang Message-ID: <20020111115006.K1529@clove.org>
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder * Try to get libtool inter-library dependency code working on AIX.
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder Message-ID: <cm3n10lx555.fsf@rdu163-40-092.nc.rr.com>
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder Justin says: If we get it working on AIX, we can enable this
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder on all platforms and clean up our build system
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder Jeff says: I thought I tested a patch for you sometime in
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder January that you were going to commit within a few
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder * Handling of %2f in URIs. Currently both 1.3 and 2.0
2171c56565d5f6955f1f391eb7f0f38171982cdeChristian Maeder completely disallow %2f in the request URI path (see
2171c56565d5f6955f1f391eb7f0f38171982cdeChristian Maeder ap_unescape_url() in util.c). It's permitted and passed
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder through in the query string, however. Roy says the
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder original reason for disallowing it, from five years ago,
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder was to protect CGI scripts that applied PATH_INFO to
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder a filesystem location and which might be tricked by
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder ..%2f..%2f(...). We *should* allow path-info of the
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder form 'http://foo.com/index.cgi/path/to/path%2finfo'.
2171c56565d5f6955f1f391eb7f0f38171982cdeChristian Maeder Since we've revamped a lot of our processing of path
2171c56565d5f6955f1f391eb7f0f38171982cdeChristian Maeder segments, it would be nice to allow this, or at least
2171c56565d5f6955f1f391eb7f0f38171982cdeChristian Maeder allow it conditionally with a directive.
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder OtherBill adds that %2f as the SECOND character of a multibyte
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder sequence causes the request to fail! This happens notably in
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder the ja-jis encoding.
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder * FreeBSD, threads, and worker MPM. All seems to work fine
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder if you only have one worker process with many threads. Add
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder a second worker process and the accept lock seems to be
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder lost. This might be an APR issue with how it deals with
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder the child_init hook (i.e. the fcntl lock needs to be resynced).
a0ac3ce207826aaccfdd220ac72cd49924660038Christian Maeder More examination and analysis is required.
a0ac3ce207826aaccfdd220ac72cd49924660038Christian Maeder Status: This has also been reported on Cygwin.
a0ac3ce207826aaccfdd220ac72cd49924660038Christian Maeder FreeBSD 4.7 was reputed to have 'fixed' threads. Not.
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder Message-ID: <3C2CC514.8EF3BED1@wapme-systems.de> (cygnus)
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder Aaron says: I spent some time disecting this and have come to
a0ac3ce207826aaccfdd220ac72cd49924660038Christian Maeder the conclusion that it is not a problem in the worker MPM
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder (or at least, it is not isolated to a problem in worker).
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder I'll list some of the problems I'm seeing in case someone
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder else wants to pick up where I've left off:
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder - Delivery of just about any signal to one of the child
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder processes will send it into an infinite loop as well.
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder - Even though the parent is spinning out of control,
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder at first the child or children will appear to work
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder properly. At times it is possible to get it into a state,
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder however, where a request will hang until another concurrent
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder request "kicks" the first, at which point the second will
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder hang. My theory is that this has to do with the
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder pthread_cond_*() implementation in FreeBSD, but it's still
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder possible that it is in APR.
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder Justin adds: Oh, FreeBSD threads are implemented entirely with
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder select()/poll()/longjmp(). Welcome to the nightmare.
7fd4c34af8415eb699517b1b238a24c02a9a2e9bDominik Luecke So, that means a ktrace output also has the thread
56c56b2181e76c239929ddade2925ba5c3f3fffdChristian Maeder scheduling internals in it (since it is all the same to
7fd4c34af8415eb699517b1b238a24c02a9a2e9bDominik Luecke the kernel). Which makes it hard to distinguish between
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder our select() calls and their select() calls.
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder *bangs head on wall repeatedly* But, some of the libc_r
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder files have a DBG_MSG #define. This is moderately helpful
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder when used with -DNO_DETACH. The kernel scheduler isn't
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder waking up the threads on a select(). Yum. And, I bet
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder those decrementing select calls have to do with the
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder scheduler. Time to brush up on our OS fundamentals.
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder * There is increasing demand from module writers for an API
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder that will allow them to control the server � la apachectl.
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder Reasons include sole-function servers that need to die if
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder an external dependency (e.g., a database) fails, et cetera.
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder Perhaps something in the (ever more abused) scoreboard?
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder On the other hand, we already have a pipe that goes between parent
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder and child for graceful shutdown events, along with an API that
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder can be used to send a message down that pipe. In threaded MPMs,
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder it is easy enough to make that one pipe be used for graceful
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder and graceless events, and it is also easy to open that pipe
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder to both parent and child for writing. Then we just need to
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder figure out how to do graceless on non-threaded MPMs.
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder * Allow the DocumentRoot directive within <Location > scopes? This
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder allows the beloved (crusty) Alias /foo/ /somepath/foo/ followed
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder by a <Directory /somepath/foo> to become simply
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder <Location /foo/> DocumentRoot /somefile/foo (IMHO a bit more legible
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder and in-your-face.) DocumentRoot unset would be accepted [and would
4aa35aadcb28f8a962096efc70d3bdb58ab7d9faChristian Maeder not permit content to be served, only virtual resources such as
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder server-info or server-status.
bc587e949508a201ea6073f845ab513a912cabf4Christian Maeder This proposed change would _not_ depricate Alias.
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder striker: See the thread starting with Message-ID:
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder JLEGKKNELMHCJPNMOKHOGEEJFBAA.striker@apache.org.
2fcae3e3d61ea194a6ce5f0bd4afc1b6ed4b2faeChristian Maeder * Win32: Rotatelogs sometimes is not terminated when Apache
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder goes down hard. FirstBill was looking at possibly tracking the
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder child's-child processes in the parent process.
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder stoddard: Shared scoreboard might offer a good way for the parent
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder to keep track of 'other child' processes and whack them if the child
88ece6e49930670e8fd3ee79c89a2e918d2fbd0cChristian Maeder Other thoughts on walking the process chain using the NT kernel
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder have also been proposed on APR.
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder * Eliminate unnecessary creation of pipes in mod_cgid
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder * Combine log_child and piped_log_spawn. Clean up http_log.c.
0e2ae85e2453466d03c1fc5884a3d693235bb9d9Christian Maeder Common logging API.
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder * Platforms that do not support fork (primarily Win32 and AS/400)
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder Architect start-up code that avoids initializing all the modules
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder in the parent process on platforms that do not support fork.
c438c79d00fc438f99627e612498744bdc0d0c89Christian Maeder * There are still a number of places in the code where we are
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder losing error status (i.e. throwing away the error returned by a
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder system call and replacing it with a generic error code)
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder * Mass vhosting version of suEXEC.
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder * All DBMs suffer from confusion in support/dbmmanage (perl script) since
03136b84a0c70d877e227444f0875e209506b9e4Christian Maeder the dbmmanage employs the first-matched dbm format. This is not
f8b715ab2993083761c0aedb78f1819bcf67b6ccChristian Maeder necessarily the library that Apache was built with. Aught to
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder rewrite dbmmanage upon installation to bin/ with the proper library
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder for predictable mod_auth_dbm administration.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder Questions; htdbm exists, time to kill dbmmanage, or does it remain
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder useful as a perl dbm management example? If we keep it,
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski do we address the issue above?
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Integrate mod_dav.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder Some additional items remaining:
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder - case_preserved_filename stuff
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder (use the new canonical name stuff?)
f39ed99723025fc283f54359ad53b46f2e178f1eChristian Maeder - find a new home for ap_text(_header)
8e80792f474d154ff11762fac081a422e34f1accChristian Maeder - is it possible to remove the DAV: namespace stuff from util_xml?
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * ap_core_translate() and its use by mod_mmap_static and mod_file_cache
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder are a bit wonky. The function should probably be exposed as a utility
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder function (such as ap_translate_url2fs() or ap_validate_fs_url() or
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder something). Another approach would be a new hook phase after
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder "translate" which would allow the module to munge what the
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder translation has decided to do.
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder Status: Greg +1 (volunteers)
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Explore use of a post-config hook for the code in http_main.c which
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder calls ap_fixup_virutal_hosts(), ap_fini_vhost_config(), and
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder ap_sort_hooks() [to reduce the logic in main()]
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * read the config tree just once, and process N times (as necessary)
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * (possibly) use UUIDs in mod_unique_id and/or mod_usertrack
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder * (possibly) port the bug fix for PR 6942 (segv when LoadModule is put
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder into a VirtualHost container) to 2.0.
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder * shift stuff to mod_core.h
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder * callers of ap_run_create_request() should check the return value
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder for failure (Doug volunteers)
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder * Win32: Get Apache working on Windows 95/98. The following work
4ab71c23ba3909f064fafd53a7f4fe8f4dce39cdChristian Maeder (at least) needs to be done:
4d4ec273e5cb1f17985c6edcf90a295a8b612cefChristian Maeder - Document warning that OSR2 is required (for Crypt functions, in
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski rand.c, at least.) This could be resolved with an SSL library, or
d183a4514d8a5b6a5d48d15a8dff52d0c96691eaChristian Maeder randomization in APR itself.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder - Bring the Win9xConHook.dll from 1.3 into 2.0 (no sense till it
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder actually works) and add in a splash of Win9x service code.
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder * Fix the worker MPM to use POD to kill child processes instead
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder of ap_os_killpg, regardless of how they should die.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Scoreboard structures could be changed in the future such that
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski proper alignment is not maintained, leading to segfaults on
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder some systems. Cliff posted a patch to deal with this issue but
752c91d9483d1ecc6dd3f2a56b636bd9bc64cd56Christian Maeder later recanted. See this message to dev@apr.apache.org:
752c91d9483d1ecc6dd3f2a56b636bd9bc64cd56Christian Maeder Message-ID: <Pine.LNX.4.44.0203011354090.16457-200000@deepthought
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian MaederTODO ISSUES REMAINING IN MOD_SSL:
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * In order to use a DSO version of mod_ssl we have to link with
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder -lssl and -lcrypto. A workaround is in place right now where the
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder entire EXTRA_LIBS macro is being appended to the objects list, but
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder this is a hack. We should either revamp the APACHE_CHECK_SSL_TOOLKIT
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder autoconf function or come up with some other autoconf checks to
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder search for libssl and libcrypto and properly add them to mod_ssl's
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * SSL renegotiations in combination with POST request
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Port or dispose all code inside #if 0...#endif blocks that remain
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder from the porting effort.
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Do we need SSL_set_read_ahead()?
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * the ssl_expr api is NOT THREAD SAFE. race conditions exist:
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder -in ssl_expr_comp() if SSLRequire is used in .htaccess
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder (ssl_expr_info is global)
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder -is ssl_expr_eval() if there is an error
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder (ssl_expr_error is global)
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * SSLRequire directive (parsing of) leaks memory
95930e7e3689b644fcccb27cc0a26a1b5ed9d0b1Christian Maeder * Diffie-Hellman-Parameters for temporary keys are hardcoded in
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski ssl_engine_dh.c, while the comment in ssl_engine_kernel.c says:
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder "it is suggested that keys be changed daily or every 500
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder transactions, and more often if possible."
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder * ssl_var_lookup could be rewritten to be MUCH faster
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder * CRL callback should be pluggable
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder * session cache store should be pluggable
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder * init functions should return status code rather than ssl_die()
bf52f113af1263696a1115e46097d787c9323754Christian Maeder * ssl_engine_pphrase.c needs to be reworked so it is generic enough
bf52f113af1263696a1115e46097d787c9323754Christian Maeder to also decrypt proxy keys
68b065341b3426cd3ecbdc31c0186090000ae4b6Christian Maeder * the shmcb code should just align its memory segment rather than
bf52f113af1263696a1115e46097d787c9323754Christian Maeder jumping through all the "safe" memcpy and memset hoops
68b065341b3426cd3ecbdc31c0186090000ae4b6Christian Maeder * mod_proxy performance: when mod_proxy is configured to do proxy
bf52f113af1263696a1115e46097d787c9323754Christian Maeder gateway (aka reverse proxy), it would be nice to be able to reuse
68b065341b3426cd3ecbdc31c0186090000ae4b6Christian Maeder connections to the backend servers. Now, connections to the
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder backend servers are taken down when the corresponding frontend
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder connection is taken down.
68b065341b3426cd3ecbdc31c0186090000ae4b6Christian Maeder * mod_proxy: Ability to run SSL over proxy gateway connections,
47af295501ed5f407848f61b9943d58ccb43be29Till Mossakowski encrypting (or reencrypting) at the proxy.
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder * mod_proxy: Add capability of mod_proxy to load balance across
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder a farm of backend servers.
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder * mod_cache: Handle ESI tags.
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian MaederEXPERIMENTAL MODULES:
f8c07dc6526e0134d66885d461a30abadc2c6038Christian Maeder Experimental modules should eventually be be promoted to fully supported
bf52f113af1263696a1115e46097d787c9323754Christian Maeder status or removed from the repository entirely (ie, the
bf52f113af1263696a1115e46097d787c9323754Christian Maeder 'experiment' failed). This section tracks what needs to happen to
2abcdc69761b88c4db85b1cdbf55798c8128b356Christian Maeder get the modules promoted to fully supported status.
bc48a75c0a968be3d6cb31768a4120cafba0d202Christian Maeder * mod_cache: handle cache_control: no_cache "field_name" to enable
06455925c22c6409dc3887d200eee0584bf29364Klaus Luettich cacheing the response w/o header "field_name"
bb9c344bcfdca677181baeab9548208ed59072afChristian Maeder See RFC2616 section 14.9.1
6a50fa6b0d93a521d8e52c61a3ceb71d9f878cebChristian Maeder * mod_mem_cache: Consider adding a RevalidateTimeout directive to
6f485a7c411a3a411673a43aadd6293975f1b029Till Mossakowski specify time at which local cached content is to be revalidated
6f485a7c411a3a411673a43aadd6293975f1b029Till Mossakowski (ie, underlying file stat'ed to see if it has changed).
6a50fa6b0d93a521d8e52c61a3ceb71d9f878cebChristian Maeder * mod_cache: CacheEnable/CacheDisable should accept regular expressions.
6f485a7c411a3a411673a43aadd6293975f1b029Till Mossakowski * mod_cache: Fix dependency on ATOMIC operators. Need
6f485a7c411a3a411673a43aadd6293975f1b029Till Mossakowski APR_HAS_ATOMIC_* feature macros.
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder * mod_disk_cache: Implement garbage collection
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder * mod_mem_cache/mod_disk_cache: Need to be able to query cache
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder status (num of entries, cache object properties, etc.).
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder mod_status could be extended to query optional hooks defined
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder by modules for the purpose of reporting module status.
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder mod_cache (et. al.) could define optional hooks that are called
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder to collect status. Status should be queryable by
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder HTTP or SNMP?
bcc126ec3126d2c3a499029dc24ecb7060dbf35aChristian Maeder * Enable mod_cache/mod_mem_cache/mod_disk_cache to handle
* mod_mem_cache/mod_disk_cache: Complete implementing config
* implement cross-platform/cross-library TLS support
PR#1191: setlogin() is not called, causing problems with e.g. identd
PR#1287: add allow,deny/deny,allow warning to mod_access
PR#1117: Using NIS passwd.byname dbm files with AuthDBMUserFile
PR#2873: Feedback/Comment on APACI
PR#2431: A small addition to rotatelogs.c to improve program functionality.
PR#2889: Inclusion of RPM spec file in CVS/distributions
* orig_ct in the byterange/multipart handling may not be