STATUS revision 62f7716b14b71603a8004434ca3536902bfb8899
fa9e4066f08beec538e775443c5be79dd423fcabahrensAPACHE 2.1 STATUS: -*-text-*-
fa9e4066f08beec538e775443c5be79dd423fcabahrensLast modified at [$Date$]
fa9e4066f08beec538e775443c5be79dd423fcabahrensThe current version of this file can be found at:
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock http://svn.apache.org/repos/asf/httpd/httpd/trunk/STATUS
fa9e4066f08beec538e775443c5be79dd423fcabahrensRelease history:
fa9e4066f08beec538e775443c5be79dd423fcabahrens [NOTE that only Alpha/Beta releases occur in 2.1 development]
fa9e4066f08beec538e775443c5be79dd423fcabahrens 2.1.7 : in development
fa9e4066f08beec538e775443c5be79dd423fcabahrens 2.1.6 : Tagged on 6/24/2005.
fa9e4066f08beec538e775443c5be79dd423fcabahrens 2.1.5 : Tagged on 6/17/2005.
fa9e4066f08beec538e775443c5be79dd423fcabahrens 2.1.4 : not released.
fa9e4066f08beec538e775443c5be79dd423fcabahrens 2.1.3 : Released on 2/22/2005 as alpha.
fa9e4066f08beec538e775443c5be79dd423fcabahrens 2.1.2 : Released on 12/08/2004 as alpha.
fa9e4066f08beec538e775443c5be79dd423fcabahrens 2.1.1 : Released on 11/19/2004 as alpha.
fa9e4066f08beec538e775443c5be79dd423fcabahrens 2.1.0 : not released.
fa9e4066f08beec538e775443c5be79dd423fcabahrensPlease consult the following STATUS files for information on related projects:
8d18220deb04ec7b12410cd90deb4d45e66d49bfMark J Musante * http://svn.apache.org/repos/asf/apr/apr/trunk/STATUS
daec38ecb4fb5e73e4ca9e99be84f6b8c50c02faJoe Stein * http://svn.apache.org/repos/asf/apr/apr-util/trunk/STATUS
c3d26abc9ee97b4f60233556aadeb57e0bd30bb9Matthew AhrensPatches considered for backport are noted in their respective STATUS files:
fa9e4066f08beec538e775443c5be79dd423fcabahrens * http://svn.apache.org/repos/asf/httpd/httpd/branches/1.3.x/STATUS
fa9e4066f08beec538e775443c5be79dd423fcabahrens * http://svn.apache.org/repos/asf/httpd/httpd/branches/2.0.x/STATUS
fa9e4066f08beec538e775443c5be79dd423fcabahrensContributors looking for a mission:
fa9e4066f08beec538e775443c5be79dd423fcabahrens * Just do an egrep on "TODO" or "XXX" in the source.
fa9e4066f08beec538e775443c5be79dd423fcabahrens * Review the bug database at: http://issues.apache.org/bugzilla/
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * Review the "PatchAvailable" bugs in the bug database:
0f7643c7376dd69a08acbfc9d1d7d548b10c846aGeorge Wilson http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=Apache+httpd-2.0&keywords=PatchAvailable
09c9d376e8ccb8fbba74f33cc268964464092b62George Wilson After testing, you can append a comment saying "Reviewed and tested".
e05725b117836db173257fae43fb0746eb857fb5bonwick * Open bugs in the bug database.
16a4a8074274d2d7cc408589cf6359f4a378c861George WilsonCURRENT RELEASE NOTES:
16a4a8074274d2d7cc408589cf6359f4a378c861George WilsonRELEASE SHOWSTOPPERS:
16a4a8074274d2d7cc408589cf6359f4a378c861George Wilson * Handling of non-trailing / config by non-default handler is broken
16a4a8074274d2d7cc408589cf6359f4a378c861George Wilson http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105451701628081&w=2
2a104a5236475eb73aa41eaaf3ed9f3ccbe0ca55Alex Reece jerenkrantz asks: Why should this block a release?
2a104a5236475eb73aa41eaaf3ed9f3ccbe0ca55Alex Reece wsanchez agrees: this may be a change in behavior, but isn't
2a104a5236475eb73aa41eaaf3ed9f3ccbe0ca55Alex Reece clearly wrong, and even if so, it doesn't seem like a
2a104a5236475eb73aa41eaaf3ed9f3ccbe0ca55Alex Reece * the edge connection filter cannot be removed
2a104a5236475eb73aa41eaaf3ed9f3ccbe0ca55Alex Reece http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105366252619530&w=2
2a104a5236475eb73aa41eaaf3ed9f3ccbe0ca55Alex Reece jerenkrantz asks: Why should this block a release?
2a104a5236475eb73aa41eaaf3ed9f3ccbe0ca55Alex Reece stas replies: because it requires a rewrite of the filters stack
2a104a5236475eb73aa41eaaf3ed9f3ccbe0ca55Alex Reece implementation (you have suggested that) and once 2.2 is
2a104a5236475eb73aa41eaaf3ed9f3ccbe0ca55Alex Reece released you can't do that anymore.
22e30981d82a0b6dc89253596ededafae8655e00George WilsonCURRENT VOTES:
22e30981d82a0b6dc89253596ededafae8655e00George Wilson a) httpd-std.conf should be tailored by install (from src or
22e30981d82a0b6dc89253596ededafae8655e00George Wilson binbuild) even if user has existing httpd.conf
22e30981d82a0b6dc89253596ededafae8655e00George Wilson +1: trawick, slive, gregames, ianh, Ken, wrowe, jwoolley, jim, nd,
22e30981d82a0b6dc89253596ededafae8655e00George Wilson wrowe - prefer httpd.default.conf to avoid ambiguity with cvs
22e30981d82a0b6dc89253596ededafae8655e00George Wilson b) tailored httpd-std.conf should be copied by install to
09c9d376e8ccb8fbba74f33cc268964464092b62George Wilson c) tailored httpd-std.conf should be installed to
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson +1: slive, trawick, Ken, nd (prefer the latter), erikabele
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson +1: wsanchez (propose sysconfdir/examples/<version> for diffiness)
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson d) Installing a set of default config files when upgrading a server
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson doesn't make ANY sense at all.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson +1: ianh - medium/big sites don't use 'standard config' anyway, as it
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson usually needs major customizations
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson -1: Ken, wrowe, jwoolley, jim, nd, erikabele
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson wrowe - diff is wonderful when comparing old/new default configs,
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson even for customized sites that ianh mentions
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson jim - ... assuming that the default configs have been updated
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson with the required inline docs to explain the
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * If the parent process dies, should the remaining child processes
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson "gracefully" self-terminate. Or maybe we should make it a runtime
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick option, or have a concept of 2 parent processes (one being a
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson "hot spare").
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson Self-destruct: Ken, Martin, Lars
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson Not self-destruct: BrianP, Ian, Cliff, BillS
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson Make it runtime configurable: Aaron, jim, Justin, wrowe, rederpj, nd
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson /* The below was a concept on *how* to handle the problem */
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick Have 2 parents: +1: jim
d6e555bdd793b8bc8fe57d5f12c3d69c813d0661George Wilson -1: Justin, wrowe, rederpj, nd
d6e555bdd793b8bc8fe57d5f12c3d69c813d0661George Wilson +0: Lars, Martin (while standing by, could it do
80eb36f241abf8c076119fb4c49a55fd61ebc710George Wilson something useful?)
d6e555bdd793b8bc8fe57d5f12c3d69c813d0661George Wilson * Make the worker MPM the default MPM for threaded Unix boxes.
d6e555bdd793b8bc8fe57d5f12c3d69c813d0661George Wilson +1: Justin, Ian, Cliff, BillS, striker, wrowe, nd
b515258426fed6c7311fd3f1dea697cfbd4085c6Matthew Ahrens +0: BrianP, Aaron (mutex contention is looking better with the
d6e555bdd793b8bc8fe57d5f12c3d69c813d0661George Wilson latest code, let's continue tuning and testing), rederpj, jim
d6e555bdd793b8bc8fe57d5f12c3d69c813d0661George Wilson pquerna: Do we want to change this for 2.2?
d6e555bdd793b8bc8fe57d5f12c3d69c813d0661George WilsonRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
80eb36f241abf8c076119fb4c49a55fd61ebc710George Wilson * Patches submitted to the bug database:
80eb36f241abf8c076119fb4c49a55fd61ebc710George Wilson http://issues.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=Apache+httpd-2.0&keywords=PatchAvailable
80eb36f241abf8c076119fb4c49a55fd61ebc710George Wilson * The Event MPM does not work on Solaris 10. PR 34040.
80eb36f241abf8c076119fb4c49a55fd61ebc710George Wilson * Filter stacks and subrequests, redirects and fast redirects.
80eb36f241abf8c076119fb4c49a55fd61ebc710George Wilson There's at least one PR that suffers from the current unclean behaviour
80eb36f241abf8c076119fb4c49a55fd61ebc710George Wilson (which lets the server send garbage): PR 17629
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson nd says: Every subrequest should get its own filter stack with the
80eb36f241abf8c076119fb4c49a55fd61ebc710George Wilson subreq_core filter as bottom-most. That filter does two things:
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson - swallow EOS buckets
80eb36f241abf8c076119fb4c49a55fd61ebc710George Wilson - redirect the data stream to the upper request's (rr->main)
80eb36f241abf8c076119fb4c49a55fd61ebc710George Wilson filter chain directly after the subrequest's starting
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson Once we have a clean solution, we can try to optimize
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson it, so that the server won't be slow down too much.
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson * RFC 2616 violations.
d6e555bdd793b8bc8fe57d5f12c3d69c813d0661George Wilson Closed PRs: 15857.
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson Open PRs: 15852, 15859, 15861, 15864, 15865, 15866, 15868, 15869,
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson 15870, 16120, 16125, 16126, 16133, 16135, 16136, 16137,
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson 16138, 16139, 16140, 16142, 16518, 16520, 16521,
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson jerenkrantz says: need to decide how many we need to backport and/or
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson if these rise to showstopper status.
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson wrowe suggests: it would be nice to see "MUST" v.s. "SHOULD" v.s. "MAY"
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson out of this list, without reviewing them individually.
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson * There is a bug in how we sort some hooks, at least the pre-config
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson hook. The first time we call the hooks, they are in the correct
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson order, but the second time, we don't sort them correctly. Currently,
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson the modules/http/config.m4 file has been renamed to
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson modules/http/config2.m4 to work around this problem, it should moved
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson back when this is fixed.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson OtherBill offers that this is a SERIOUS problem. We do not sort
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson correctly by the ordering arguments passed to the register hook
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson functions. This was proven when I reordered the open_logs hook
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson to attempt to open the error logs prior to the access logs. Possibly
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson the entire sorting code needs to be refactored.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * pipes deadlock on all platforms with limited pipe buffers (e.g. both
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson Linux and Win32, as opposed to only Win32 on 1.3). The right solution
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson is either GStein's proposal for a "CGI Brigade", or OtherBill's proposal
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson for "Poll Buckets" for "Polling Filter Chains". Or maybe both :-)
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * All handlers should always send content down even if r->header_only
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson is set. If not, it means that the HEAD requests don't generate the
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson same headers as a GET which is wrong.
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * exec cmd and suexec arg-passing enhancements
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson Status: Patches proposed
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson Message-ID: <20020526041748.A29148@prodigy.Redbrick.DCU.IE>
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson (see the "proc.patch" and "suexec-shell.patch" links in this message)
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * The 2.0.36 worker MPM graceless shutdown changes work but are
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson a bit clunky on some platforms; eg, on Linux, the loop to
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson join each worker thread seems to hang, and the parent ends up
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson killing off the child with SIGKILL. But at least it shuts down.
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * --enable-mods-shared="foo1 foo2" is busted on Darwin. Pier
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson posted a patch (Message-ID: <B8DBBE8D.575A%pier@betaversion.org>).
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * We do not properly substitute the prefix-variables in the configuration
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson scripts or generated-configs. (i.e. if sysconfdir is etc,
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson httpd-std.conf points to conf.)
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * If any request gets through ap_process_request_internal() and is
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson scheduled to be served by the core handler, without a flag that this
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson r->filename was tested by dir/file_walk, we need to 500 at the very
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson end of the ap_process_request_internal() processing so sub_req-esters
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson know this request cannot be run. This provides authors of older
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson modules better compatibility, while still improving the security and
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson robustness of 2.0.
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson Status: still need to decide where this goes, OtherBill comments...
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net>
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson [Deleted comments regarding the ap_run_handler phase, as irrelevant
fa9e4066f08beec538e775443c5be79dd423fcabahrens as BillS points out that "common case will be caught in
fa9e4066f08beec538e775443c5be79dd423fcabahrens default_handler already (with the r->finfo.filetype == 0 check)"
fa9e4066f08beec538e775443c5be79dd423fcabahrens and the issue is detecting this -before- we try to run the req.]
fa9e4066f08beec538e775443c5be79dd423fcabahrens gregames says: can this happen somehow without a broken module
fa9e4066f08beec538e775443c5be79dd423fcabahrens being involved? If not, why waste cycles trying to defend against
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson potential broken modules? It seems futile.
fa9e4066f08beec538e775443c5be79dd423fcabahrens wrowe counters: no, it shouldn't happen unless the module is broken.
fa9e4066f08beec538e775443c5be79dd423fcabahrens But the right answer is to fail the request up-front in dir/file
fa9e4066f08beec538e775443c5be79dd423fcabahrens walk if the path was entirely invalid; and we can't do that either
fa9e4066f08beec538e775443c5be79dd423fcabahrens UNTIL 2.1 or we break modules that haven't hooked map_to_storage.
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson * With AP_MODE_EXHAUSTIVE in the core, it is finally clear to me
fa9e4066f08beec538e775443c5be79dd423fcabahrens how the Perchild MPM should be re-written. It hasn't worked
d6e555bdd793b8bc8fe57d5f12c3d69c813d0661George Wilson correctly since filters were added because it wasn't possible to
0f7643c7376dd69a08acbfc9d1d7d548b10c846aGeorge Wilson get the content that had already been written and the socket at
0f7643c7376dd69a08acbfc9d1d7d548b10c846aGeorge Wilson the same time. This mode lets us do that, so the MPM can be
fa9e4066f08beec538e775443c5be79dd423fcabahrens * Can a static httpd be built reliably?
fa9e4066f08beec538e775443c5be79dd423fcabahrens Message-ID: <20020207142751.T31582@clove.org>
fa9e4066f08beec538e775443c5be79dd423fcabahrens * Usage of APR_BRIGADE_NORMALIZE in core_input_filter should be
fa9e4066f08beec538e775443c5be79dd423fcabahrens removed if possible.
a15215608b8bd90f714f6db21ee623b584607cb6Jeff Bonwick Message-ID: <Pine.LNX.4.33.0201202232430.318-100000@deepthought.cs.virginia.edu>
a15215608b8bd90f714f6db21ee623b584607cb6Jeff Bonwick Jeff wonders if we still care about this. It is no longer an
a15215608b8bd90f714f6db21ee623b584607cb6Jeff Bonwick API issue but simply an extra trip through the brigade.
a15215608b8bd90f714f6db21ee623b584607cb6Jeff Bonwick * Get perchild to work on platforms other than Linux. This
fa9e4066f08beec538e775443c5be79dd423fcabahrens will require a portable mechanism to pass data and file/socket
0f7643c7376dd69a08acbfc9d1d7d548b10c846aGeorge Wilson descriptors between vhost child groups. An API was proposed
fa9e4066f08beec538e775443c5be79dd423fcabahrens Message-ID: <20020111115006.K1529@clove.org>
fa9e4066f08beec538e775443c5be79dd423fcabahrens * Try to get libtool inter-library dependency code working on AIX.
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson Message-ID: <cm3n10lx555.fsf@rdu163-40-092.nc.rr.com>
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson Justin says: If we get it working on AIX, we can enable this
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson on all platforms and clean up our build system
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson Jeff says: I thought I tested a patch for you sometime in
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson January that you were going to commit within a few
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson * Handling of %2f in URIs. Currently both 1.3 and 2.0
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson completely disallow %2f in the request URI path (see
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson ap_unescape_url() in util.c). It's permitted and passed
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson through in the query string, however. Roy says the
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson original reason for disallowing it, from five years ago,
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson was to protect CGI scripts that applied PATH_INFO to
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson a filesystem location and which might be tricked by
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson ..%2f..%2f(...). We *should* allow path-info of the
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson form 'http://foo.com/index.cgi/path/to/path%2finfo'.
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson Since we've revamped a lot of our processing of path
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson segments, it would be nice to allow this, or at least
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson allow it conditionally with a directive.
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson OtherBill adds that %2f as the SECOND character of a multibyte
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson sequence causes the request to fail! This happens notably in
88ecc943b4eb72f7c4fbbd8435997b85ef171fc3George Wilson the ja-jis encoding.
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick * FreeBSD, threads, and worker MPM. All seems to work fine
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick if you only have one worker process with many threads. Add
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick a second worker process and the accept lock seems to be
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick lost. This might be an APR issue with how it deals with
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick the child_init hook (i.e. the fcntl lock needs to be resynced).
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick More examination and analysis is required.
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick Status: Works with FreeBSD 5.3. Does not work in previous versions.
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick This has also been reported on Cygwin.
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick * There is increasing demand from module writers for an API
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick that will allow them to control the server � la apachectl.
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick Reasons include sole-function servers that need to die if
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick an external dependency (e.g., a database) fails, et cetera.
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick Perhaps something in the (ever more abused) scoreboard?
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick On the other hand, we already have a pipe that goes between parent
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick and child for graceful shutdown events, along with an API that
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick can be used to send a message down that pipe. In threaded MPMs,
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick it is easy enough to make that one pipe be used for graceful
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick and graceless events, and it is also easy to open that pipe
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick to both parent and child for writing. Then we just need to
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick figure out how to do graceless on non-threaded MPMs.
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick * Allow the DocumentRoot directive within <Location > scopes? This
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick allows the beloved (crusty) Alias /foo/ /somepath/foo/ followed
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick by a <Directory /somepath/foo> to become simply
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick <Location /foo/> DocumentRoot /somefile/foo (IMHO a bit more legible
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick and in-your-face.) DocumentRoot unset would be accepted [and would
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick not permit content to be served, only virtual resources such as
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick server-info or server-status.
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick This proposed change would _not_ depricate Alias.
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick striker: See the thread starting with Message-ID:
b24ab6762772a3f6a89393947930c7fa61306783Jeff Bonwick JLEGKKNELMHCJPNMOKHOGEEJFBAA.striker@apache.org.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * Win32: Rotatelogs sometimes is not terminated when Apache
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson goes down hard. FirstBill was looking at possibly tracking the
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson child's-child processes in the parent process.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson stoddard: Shared scoreboard might offer a good way for the parent
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson to keep track of 'other child' processes and whack them if the child
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson Other thoughts on walking the process chain using the NT kernel
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson have also been proposed on APR.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * Eliminate unnecessary creation of pipes in mod_cgid
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * Combine log_child and piped_log_spawn. Clean up http_log.c.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson Common logging API.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * Platforms that do not support fork (primarily Win32 and AS/400)
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson Architect start-up code that avoids initializing all the modules
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson in the parent process on platforms that do not support fork.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * There are still a number of places in the code where we are
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson losing error status (i.e. throwing away the error returned by a
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson system call and replacing it with a generic error code)
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * Mass vhosting version of suEXEC.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * All DBMs suffer from confusion in support/dbmmanage (perl script) since
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson the dbmmanage employs the first-matched dbm format. This is not
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson necessarily the library that Apache was built with. Aught to
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson rewrite dbmmanage upon installation to bin/ with the proper library
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson for predictable mod_auth_dbm administration.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson Questions; htdbm exists, time to kill dbmmanage, or does it remain
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson useful as a perl dbm management example? If we keep it,
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson do we address the issue above?
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * Integrate mod_dav.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson Some additional items remaining:
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson - case_preserved_filename stuff
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson (use the new canonical name stuff?)
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson - find a new home for ap_text(_header)
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson - is it possible to remove the DAV: namespace stuff from util_xml?
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * ap_core_translate() and its use by mod_mmap_static and mod_file_cache
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson are a bit wonky. The function should probably be exposed as a utility
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson function (such as ap_translate_url2fs() or ap_validate_fs_url() or
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson something). Another approach would be a new hook phase after
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson "translate" which would allow the module to munge what the
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson translation has decided to do.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson Status: Greg +1 (volunteers)
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * Explore use of a post-config hook for the code in http_main.c which
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson calls ap_fixup_virutal_hosts(), ap_fini_vhost_config(), and
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson ap_sort_hooks() [to reduce the logic in main()]
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * read the config tree just once, and process N times (as necessary)
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * (possibly) use UUIDs in mod_unique_id and/or mod_usertrack
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * (possibly) port the bug fix for PR 6942 (segv when LoadModule is put
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson into a VirtualHost container) to 2.0.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * shift stuff to mod_core.h
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * callers of ap_run_create_request() should check the return value
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson for failure (Doug volunteers)
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * Win32: Get Apache working on Windows 95/98. The following work
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson (at least) needs to be done:
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson - Document warning that OSR2 is required (for Crypt functions, in
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson rand.c, at least.) This could be resolved with an SSL library, or
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson randomization in APR itself.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson - Bring the Win9xConHook.dll from 1.3 into 2.0 (no sense till it
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson actually works) and add in a splash of Win9x service code.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * Fix the worker MPM to use POD to kill child processes instead
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson of ap_os_killpg, regardless of how they should die.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * Scoreboard structures could be changed in the future such that
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson proper alignment is not maintained, leading to segfaults on
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson some systems. Cliff posted a patch to deal with this issue but
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson later recanted. See this message to dev@apr.apache.org:
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson Message-ID: <Pine.LNX.4.44.0203011354090.16457-200000@deepthought
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * APXS either needs to be fixed completely for use when apr is out of tree,
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson or it should drop query mode altogether, and we just grow an
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson httpd-config or similar arrangement.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson To quote a discussion in STATUS earlier:
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson thommay: this doesn't fix all the problems with apxs and out of
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson tree apr/apr-util, but it's a good start. There's still the
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson query cases; but I'm beginning to think that in these cases
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson the app should be querying ap{r,u}-config directly
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson gstein: agreed. apxs should deprecate the -q flag
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson pquerna: I vote for a httpd-config, and to deprecate the -q flag.
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson minfrin: +1 for httpd-config, and to deprecate -q.
2e4c998613148111f2fc5371085331ffb39122ffGeorge WilsonTODO ISSUES REMAINING IN MOD_SSL:
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * In order to use a DSO version of mod_ssl we have to link with
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson -lssl and -lcrypto. A workaround is in place right now where the
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson entire EXTRA_LIBS macro is being appended to the objects list, but
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson this is a hack. We should either revamp the APACHE_CHECK_SSL_TOOLKIT
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson autoconf function or come up with some other autoconf checks to
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson search for libssl and libcrypto and properly add them to mod_ssl's
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * SSL renegotiations in combination with POST request
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * Port or dispose all code inside #if 0...#endif blocks that remain
c39a2aae1e2c439d156021edfc20910dad7f9891George Wilson from the porting effort.
c39a2aae1e2c439d156021edfc20910dad7f9891George Wilson * Do we need SSL_set_read_ahead()?
c39a2aae1e2c439d156021edfc20910dad7f9891George Wilson * the ssl_expr api is NOT THREAD SAFE. race conditions exist:
c39a2aae1e2c439d156021edfc20910dad7f9891George Wilson -in ssl_expr_comp() if SSLRequire is used in .htaccess
c39a2aae1e2c439d156021edfc20910dad7f9891George Wilson (ssl_expr_info is global)
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson -is ssl_expr_eval() if there is an error
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson (ssl_expr_error is global)
2e4c998613148111f2fc5371085331ffb39122ffGeorge Wilson * SSLRequire directive (parsing of) leaks memory
fa9e4066f08beec538e775443c5be79dd423fcabahrens * Diffie-Hellman-Parameters for temporary keys are hardcoded in
fa9e4066f08beec538e775443c5be79dd423fcabahrens ssl_engine_dh.c, while the comment in ssl_engine_kernel.c says:
fa9e4066f08beec538e775443c5be79dd423fcabahrens "it is suggested that keys be changed daily or every 500
fa9e4066f08beec538e775443c5be79dd423fcabahrens transactions, and more often if possible."
fa9e4066f08beec538e775443c5be79dd423fcabahrens * ssl_var_lookup could be rewritten to be MUCH faster
fa9e4066f08beec538e775443c5be79dd423fcabahrens * CRL callback should be pluggable
fa9e4066f08beec538e775443c5be79dd423fcabahrens * session cache store should be pluggable
fa9e4066f08beec538e775443c5be79dd423fcabahrens * init functions should return status code rather than ssl_die()
fa9e4066f08beec538e775443c5be79dd423fcabahrens * ssl_engine_pphrase.c needs to be reworked so it is generic enough
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson to also decrypt proxy keys
0713e232b7712cd27d99e1e935ebb8d5de61c57dGeorge Wilson * the shmcb code should just align its memory segment rather than
fa9e4066f08beec538e775443c5be79dd423fcabahrens jumping through all the "safe" memcpy and memset hoops
fa9e4066f08beec538e775443c5be79dd423fcabahrens * mod_proxy: Ability to run SSL over proxy gateway connections,
fa9e4066f08beec538e775443c5be79dd423fcabahrens encrypting (or reencrypting) at the proxy.
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * mod_cache: Handle ESI tags.
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * mod_cache: Resolve issue of how to cache page fragements (or perhaps
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson -if- we want to cache page fragements). Today, mod_cache/mod_mem_cache
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson will cache #include 'virtual' requests (but not #include 'file'
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson requests). This was accomplished by making CACHE_IN a
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson CONTENT_SET-1 filter to force it to run before the SUBREQ_CORE
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson filter. But now responses cannot be cached that include the
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson effects of having been run through CONTENT_SET filters
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson (mod_deflate, mod_expires, etc). We could rerun all the
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson CONTENT_SET filters on the cached response, but this will not
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson work in all cases. For example, mod_expires relies on installing
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson the EXPIRATION filter during fixups. Contents served out of
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson mod_cache (out of the quick_handler) bypass -all- the request
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson line server hooks (Ryan really hated this. It is great for
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson performance, but bad because of the complications listed above).
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * mod_mem_cache: Consider adding a RevalidateTimeout directive to
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson specify time at which local cached content is to be revalidated
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson (ie, underlying file stat'ed to see if it has changed).
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * mod_cache: CacheEnable/CacheDisable should accept regular expressions.
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson jerenkrantz says: Too slow. Get regexs away from speedy caches by
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson default. Introduce a new CacheEnableRegex if you want.
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * mod_mem_cache/mod_disk_cache: Need to be able to query cache
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson status (num of entries, cache object properties, etc.).
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson mod_status could be extended to query optional hooks defined
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson by modules for the purpose of reporting module status.
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson mod_cache (et. al.) could define optional hooks that are called
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson to collect status. Status should be queryable by
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson HTTP or SNMP?
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson jerenkrantz says: Yawn. Who cares.
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * MaxRequestsPerChild measures connections, not requests.
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson Until someone has a better way, we'll probably just rename it
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson "MaxConnectionsPerChild".
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * Regex containers don't work in an intutive way
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson Status: No one has come up with an efficient way to fix this
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson behavior. Dean has suggested getting rid of regex containers
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson OtherBill suggests: We at least seem to agree on eliminating
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson the <Container ~ foo> forms, and using only
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson <ContainerMatch foo> semantics.
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson * orig_ct in the byterange/multipart handling may not be
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson needed. Apache 1.3 just never stashed "multipart" into
8363e80ae72609660f6090766ca8c2c18aa53f0cGeorge Wilson r->content_type. We should probably follow suit since the
22e30981d82a0b6dc89253596ededafae8655e00George Wilson byterange stuff doesn't want the rest of the code to see the
22e30981d82a0b6dc89253596ededafae8655e00George Wilson multipart content-type; the other code should still think it is
22e30981d82a0b6dc89253596ededafae8655e00George Wilson dealing with the <orig_ct> stuff.
0f7643c7376dd69a08acbfc9d1d7d548b10c846aGeorge Wilson Status: Greg volunteers to investigate (esp. since he was most
0f7643c7376dd69a08acbfc9d1d7d548b10c846aGeorge Wilson likely the one to break it :-)
0f7643c7376dd69a08acbfc9d1d7d548b10c846aGeorge WilsonEXPERIMENTAL MODULES:
22e30981d82a0b6dc89253596ededafae8655e00George Wilson Experimental modules should eventually be be promoted to fully supported
22e30981d82a0b6dc89253596ededafae8655e00George Wilson status or removed from the repository entirely (ie, the
22e30981d82a0b6dc89253596ededafae8655e00George Wilson 'experiment' failed). This section tracks what needs to happen to
22e30981d82a0b6dc89253596ededafae8655e00George Wilson get the modules promoted to fully supported status.