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