]> granicus.if.org Git - apache/blob - STATUS
1b98097c7d7dbd617e9b56575e5492c1012c8c9a
[apache] / STATUS
1 APACHE 2.1 STATUS:                                              -*-text-*-
2 Last modified at [$Date: 2003/11/20 16:12:28 $]
3
4 Release [NOTE that only Alpha/Beta releases occur in 2.1 development]:
5
6     2.1.0   : in development
7
8 Please consult the following STATUS files for information
9 on related projects:
10
11     * srclib/apr/STATUS
12     * srclib/apr-util/STATUS
13     * docs/STATUS
14
15 Contributors looking for a mission:
16
17     * just do an egrep on "TODO" or "XXX" in the source.
18
19     * Review the "PatchAvailable" bugs in the bug database.
20       Append a comment saying "Reviewed and tested".
21
22     * Open bugs in the bug database.
23
24
25 CURRENT RELEASE NOTES:
26
27
28 RELEASE SHOWSTOPPERS:
29
30     * Handling of non-trailing / config by non-default handler is broken
31       http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105451701628081&w=2
32
33     * the edge connection filter cannot be removed 
34       http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105366252619530&w=2
35
36 CURRENT VOTES:
37
38     * Promote mod_cache from experimental to non-experimental
39       status (keep issues noted below in EXPERIMENTAL MODULES as
40       items to be addressed as a supported module).
41       +1: jim, bnicholes
42       -0: jerenkrantz
43       -1: stoddard
44           There are a couple of problems that need to be resolved
45       before this module is moved out of experimental. 
46       1) We need to at least review and comment on the RFC violations
47       2) Resolve issue of how to cache page fragements (or perhaps -if- we
48       want to cache page fragements). Today, mod_cache/mod_mem_cache
49       will cache #include 'virtual' requests (but not #include 'file' 
50       requests). This was accomplished by making CACHE_IN a
51       CONTENT_SET-1 filter to force it to run before the SUBREQ_CORE
52       filter.  But now responses cannot be cached that include the
53       effects of having been run through CONTENT_SET filters
54       (mod_deflate, mod_expires, etc).  We could rerun all the
55       CONTENT_SET filters on the cached response, but this will not
56       work in all cases. For example, mod_expires relies on installing
57       the EXPIRATION filter during fixups. Contents served out of
58       mod_cache (out of the quick_handler) bypass -all- the request
59       line server hooks (Ryan really hated this. It is great for
60       performance, but bad because of the complications listed above).
61  
62
63       jerenkrantz: There are a slew of RFC compliance bugs filed in Bugzilla
64                    for mod_cache (see 'RFC 2616 violations' below).  I think
65                    fixing them is a pre-requisite before it isn't experimental.
66
67     * httpd-std.conf and friends
68
69       a) httpd-std.conf should be tailored by install (from src or
70          binbuild) even if user has existing httpd.conf
71          +1:   trawick, slive, gregames, ianh, Ken, wrowe, jwoolley, jim, nd,
72                erikabele
73            wrowe - prefer httpd.default.conf to avoid ambiguity with cvs
74
75       b) tailored httpd-std.conf should be copied by install to
76          sysconfdir/examples
77          -0:   striker
78
79       c) tailored httpd-std.conf should be installed to
80          sysconfdir/examples or manualdir/exampleconf/
81          +1:   slive, trawick, Ken, nd (prefer the latter), erikabele
82
83       d) Installing a set of default config files when upgrading a server
84          doesn't make ANY sense at all.
85          +1:   ianh - medium/big sites don't use 'standard config' anyway, as it
86                       usually needs major customizations
87          -1:   Ken, wrowe, jwoolley, jim, nd, erikabele
88            wrowe - diff is wonderful when comparing old/new default configs,
89                    even for customized sites that ianh mentions
90            jim - ... assuming that the default configs have been updated
91                      with the required inline docs to explain the
92                      changes
93
94     * If the parent process dies, should the remaining child processes
95       "gracefully" self-terminate. Or maybe we should make it a runtime
96       option, or have a concept of 2 parent processes (one being a 
97       "hot spare").
98       See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
99
100       Self-destruct: Ken, Martin, Lars
101       Not self-destruct: BrianP, Ian, Cliff, BillS
102       Make it runtime configurable: Aaron, jim, Justin, wrowe, rederpj, nd
103
104       /* The below was a concept on *how* to handle the problem */
105       Have 2 parents: +1: jim
106                       -1: Justin, wrowe, rederpj, nd
107                       +0: Lars, Martin (while standing by, could it do
108                                         something useful?)
109
110     * Make the worker MPM the default MPM for threaded Unix boxes.
111       +1:   Justin, Ian, Cliff, BillS, striker, wrowe, nd
112       +0:   BrianP, Aaron (mutex contention is looking better with the
113             latest code, let's continue tuning and testing), rederpj, jim
114       -0:   Lars
115
116 RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
117
118     * Patches submitted to the bug database:
119       http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&product=Apache+httpd-2.0&keywords=PatchAvailable
120
121     * Filter stacks and subrequests, redirects and fast redirects.
122       There's at least one PR that suffers from the current unclean behaviour
123       (which lets the server send garbage): PR 17629
124       nd says: Every subrequest should get its own filter stack with the
125                subreq_core filter as bottom-most. That filter does two things:
126                  - swallow EOS buckets
127                  - redirect the data stream to the upper request's (rr->main)
128                    filter chain directly after the subrequest's starting
129                    point.
130                Once we have a clean solution, we can try to optimize
131                it, so that the server won't be slow down too much.
132
133     * RFC 2616 violations.
134       Closed PRs: 15857.
135       Open PRs: 15852, 15859, 15861, 15864, 15865, 15866, 15868, 15869,
136                 15870, 16120, 16125, 16126, 16133, 16135, 16136, 16137,
137                 16138, 16139, 16140, 16142, 16518, 16520, 16521, 
138       jerenkrantz says: need to decide how many we need to backport and/or
139                         if these rise to showstopper status.
140       wrowe suggests: it would be nice to see "MUST" v.s. "SHOULD" v.s. "MAY"
141                       out of this list, without reviewing them individually.
142
143     * There is a bug in how we sort some hooks, at least the pre-config
144       hook.  The first time we call the hooks, they are in the correct 
145       order, but the second time, we don't sort them correctly.  Currently,
146       the modules/http/config.m4 file has been renamed to 
147       modules/http/config2.m4 to work around this problem, it should moved
148       back when this is fixed.
149
150         OtherBill offers that this is a SERIOUS problem.  We do not sort
151         correctly by the ordering arguments passed to the register hook
152         functions.  This was proven when I reordered the open_logs hook
153         to attempt to open the error logs prior to the access logs.  Possibly
154         the entire sorting code needs to be refactored.
155
156     * pipes deadlock on all platforms with limited pipe buffers (e.g. both
157       Linux and Win32, as opposed to only Win32 on 1.3).  The right solution
158       is either GStein's proposal for a "CGI Brigade", or OtherBill's proposal
159       for "Poll Buckets" for "Polling Filter Chains".  Or maybe both :-)
160
161     * All handlers should always send content down even if r->header_only
162       is set.  If not, it means that the HEAD requests don't generate the
163       same headers as a GET which is wrong.
164
165     * HP/UX 10.20: compile breakage in APR.  Looks like it should be easy
166       to fix, probably just some extraneous #include's that are fouling
167       things up.
168       PR: 9457
169       Jeff: See my reply and patch in the PR (and previous commit to
170       stop using "pipe" as a field name).  If patch is committed, we
171       should be okay.  I'll wait to see if the user tests the patch.
172       Update by Jeff 20020722: I got an account on HP 10.20.  It looks
173       like some of the APR thread detection is screwed up.  If we find
174       pthread.h but we can't compile the pthread test program we still
175       think we can use threads.  For that reason, the patch I posted
176       to the PR won't work as-is since a failed compile of the test
177       program means nothing.
178
179     * exec cmd and suexec arg-passing enhancements
180       Status: Patches proposed
181       Message-ID: <20020526041748.A29148@prodigy.Redbrick.DCU.IE>
182       (see the "proc.patch" and "suexec-shell.patch" links in this message)
183
184     * The 2.0.36 worker MPM graceless shutdown changes work but are
185       a bit clunky on some platforms; eg, on Linux, the loop to
186       join each worker thread seems to hang, and the parent ends up
187       killing off the child with SIGKILL.  But at least it shuts down.
188
189     * --enable-mods-shared="foo1 foo2" is busted on Darwin.  Pier
190         posted a patch (Message-ID: <B8DBBE8D.575A%pier@betaversion.org>).
191
192     * We do not properly substitute the prefix-variables in the configuration
193       scripts or generated-configs.  (i.e. if sysconfdir is etc,
194       httpd-std.conf points to conf.)
195
196     * If any request gets through ap_process_request_internal() and is
197       scheduled to be served by the core handler, without a flag that this 
198       r->filename was tested by dir/file_walk, we need to 500 at the very 
199       end of the ap_process_request_internal() processing so sub_req-esters
200       know this request cannot be run.  This provides authors of older 
201       modules better compatibility, while still improving the security and 
202       robustness of 2.0. 
203
204         Status: still need to decide where this goes, OtherBill comments...
205         Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net>
206         [Deleted comments regarding the ap_run_handler phase, as irrelevant
207             as BillS points out that "common case will be caught in
208             default_handler already (with the r->finfo.filetype == 0 check)"
209             and the issue is detecting this -before- we try to run the req.]
210
211         gregames says: can this happen somehow without a broken module
212             being involved?  If not, why waste cycles trying to defend against
213             potential broken modules?  It seems futile.
214         wrowe counters: no, it shouldn't happen unless the module is broken.
215             But the right answer is to fail the request up-front in dir/file
216             walk if the path was entirely invalid; and we can't do that either
217             UNTIL 2.1 or we break modules that haven't hooked map_to_storage.
218
219     * With AP_MODE_EXHAUSTIVE in the core, it is finally clear to me
220       how the Perchild MPM should be re-written.  It hasn't worked
221       correctly since filters were added because it wasn't possible to
222       get the content that had already been written and the socket at
223       the same time.  This mode lets us do that, so the MPM can be
224       fixed.
225
226     * Can a static httpd be built reliably?
227         Message-ID: <20020207142751.T31582@clove.org>
228
229     * [Ken] Test suite failures:
230       o worker is also failing some of the 'cgi' subtests
231       (see <URL:http://Source-Zone.Org/Apache/regression/>):
232         Justin says: "Worker should be fine and passes httpd-test here.
233                       I think it's a perl or a httpd-test problem."
234
235     * Usage of APR_BRIGADE_NORMALIZE in core_input_filter should be
236       removed if possible.
237         Message-ID: <Pine.LNX.4.33.0201202232430.318-100000@deepthought.cs.virginia.edu>
238         Jeff wonders if we still care about this.  It is no longer an
239         API issue but simply an extra trip through the brigade.
240
241     * The Add...Filter and Set...Filter directives do not allow the
242       administrator to order filters, beyond the order of filename (mime)
243       extensions.  It isn't clear if Set...Filter(s) should be inserted 
244       before or after the Add...Filter(s) which are ordered by sequence of
245       filename extensions.  At minimum, some sort of +-[0-10] syntax seems
246       like a nice solution.  See ROADMAP.
247
248     * Get perchild to work on platforms other than Linux. This
249       will require a portable mechanism to pass data and file/socket
250       descriptors between vhost child groups. An API was proposed
251       on dev@apr:
252         Message-ID: <20020111115006.K1529@clove.org>
253
254     * Try to get libtool inter-library dependency code working on AIX.
255         Message-ID: <cm3n10lx555.fsf@rdu163-40-092.nc.rr.com>
256
257       Justin says: If we get it working on AIX, we can enable this
258                    on all platforms and clean up our build system
259                    somewhat.
260       Jeff says:   I thought I tested a patch for you sometime in
261                    January that you were going to commit within a few
262                    days.
263
264     * Handling of %2f in URIs.  Currently both 1.3 and 2.0
265       completely disallow %2f in the request URI path (see
266       ap_unescape_url() in util.c).  It's permitted and passed
267       through in the query string, however.  Roy says the
268       original reason for disallowing it, from five years ago,
269       was to protect CGI scripts that applied PATH_INFO to
270       a filesystem location and which might be tricked by
271       ..%2f..%2f(...).  We *should* allow path-info of the
272       form 'http://foo.com/index.cgi/path/to/path%2finfo'.
273       Since we've revamped a lot of our processing of path
274       segments, it would be nice to allow this, or at least
275       allow it conditionally with a directive.
276
277         OtherBill adds that %2f as the SECOND character of a multibyte
278         sequence causes the request to fail!  This happens notably in
279         the ja-jis encoding.
280
281     * FreeBSD, threads, and worker MPM.  All seems to work fine 
282       if you only have one worker process with many threads.  Add 
283       a second worker process and the accept lock seems to be
284       lost.  This might be an APR issue with how it deals with
285       the child_init hook (i.e. the fcntl lock needs to be resynced).
286       More examination and analysis is required.
287         Status: This has also been reported on Cygwin.  
288                 FreeBSD 4.7 was reputed to have 'fixed' threads.  Not.
289         Message-ID: <3C2CC514.8EF3BED1@wapme-systems.de> (cygnus)
290
291       Aaron says: I spent some time disecting this and have come to
292               the conclusion that it is not a problem in the worker MPM
293               (or at least, it is not isolated to a problem in worker).
294               I'll list some of the problems I'm seeing in case someone
295               else wants to pick up where I've left off:
296                - Delivery of just about any signal to one of the child
297                  processes will send it into an infinite loop as well.
298                - Even though the parent is spinning out of control,
299                  at first the child or children will appear to work
300                  properly. At times it is possible to get it into a state,
301                  however, where a request will hang until another concurrent
302                  request "kicks" the first, at which point the second will
303                  hang. My theory is that this has to do with the
304                  pthread_cond_*() implementation in FreeBSD, but it's still
305                  possible that it is in APR.
306       
307       Justin adds: Oh, FreeBSD threads are implemented entirely with 
308                    select()/poll()/longjmp().  Welcome to the nightmare.
309                    So, that means a ktrace output also has the thread 
310                    scheduling internals in it (since it is all the same to 
311                    the kernel).  Which makes it hard to distinguish between 
312                    our select() calls and their select() calls.  
313                    *bangs head on wall repeatedly*  But, some of the libc_r 
314                    files have a DBG_MSG #define.  This is moderately helpful
315                    when used with -DNO_DETACH.  The kernel scheduler isn't 
316                    waking up the threads on a select().  Yum.  And, I bet 
317                    those decrementing select calls have to do with the 
318                    scheduler.  Time to brush up on our OS fundamentals.
319
320     * There is increasing demand from module writers for an API
321       that will allow them to control the server Ã  la apachectl.
322       Reasons include sole-function servers that need to die if
323       an external dependency (e.g., a database) fails, et cetera.
324       Perhaps something in the (ever more abused) scoreboard?
325         
326              On the other hand, we already have a pipe that goes between parent
327              and child for graceful shutdown events, along with an API that
328              can be used to send a message down that pipe.  In threaded MPMs,
329              it is easy enough to make that one pipe be used for graceful
330              and graceless events, and it is also easy to open that pipe
331              to both parent and child for writing.  Then we just need to
332              figure out how to do graceless on non-threaded MPMs.
333
334     * Allow the DocumentRoot directive within <Location > scopes?  This
335       allows the beloved (crusty) Alias /foo/ /somepath/foo/ followed
336       by a <Directory /somepath/foo> to become simply 
337       <Location /foo/> DocumentRoot /somefile/foo (IMHO a bit more legible
338       and in-your-face.)  DocumentRoot unset would be accepted [and would
339       not permit content to be served, only virtual resources such as
340       server-info or server-status.
341       This proposed change would _not_ depricate Alias.
342         striker: See the thread starting with Message-ID:
343           JLEGKKNELMHCJPNMOKHOGEEJFBAA.striker@apache.org.
344
345     * Win32: Rotatelogs sometimes is not terminated when Apache
346       goes down hard.  FirstBill was looking at possibly tracking the 
347       child's-child processes in the parent process.
348         stoddard: Shared scoreboard might offer a good way for the parent 
349         to keep track of 'other child' processes and whack them if the child 
350         goes down.
351         Other thoughts on walking the process chain using the NT kernel
352         have also been proposed on APR.
353
354     * Eliminate unnecessary creation of pipes in mod_cgid
355
356     * Combine log_child and piped_log_spawn. Clean up http_log.c.
357       Common logging API.
358
359     * Platforms that do not support fork (primarily Win32 and AS/400)
360       Architect start-up code that avoids initializing all the modules 
361       in the parent process on platforms that do not support fork.
362
363     * There are still a number of places in the code where we are
364       losing error status (i.e. throwing away the error returned by a
365       system call and replacing it with a generic error code)
366
367     * Mass vhosting version of suEXEC.
368
369     * All DBMs suffer from confusion in support/dbmmanage (perl script) since 
370       the dbmmanage employs the first-matched dbm format.  This is not
371       necessarily the library that Apache was built with.  Aught to
372       rewrite dbmmanage upon installation to bin/ with the proper library 
373       for predictable mod_auth_dbm administration.
374         Questions; htdbm exists, time to kill dbmmanage, or does it remain
375                    useful as a perl dbm management example?  If we keep it,
376                    do we address the issue above?
377
378     * Integrate mod_dav.
379         Some additional items remaining:
380         - case_preserved_filename stuff
381             (use the new canonical name stuff?)
382         - find a new home for ap_text(_header)
383         - is it possible to remove the DAV: namespace stuff from util_xml?
384
385     * ap_core_translate() and its use by mod_mmap_static and mod_file_cache
386       are a bit wonky.  The function should probably be exposed as a utility 
387       function (such as ap_translate_url2fs() or ap_validate_fs_url() or 
388       something).  Another approach would be a new hook phase after
389       "translate" which would allow the module to munge what the
390       translation has decided to do.
391         Status: Greg +1 (volunteers)
392
393     * Explore use of a post-config hook for the code in http_main.c which
394       calls ap_fixup_virutal_hosts(), ap_fini_vhost_config(), and
395       ap_sort_hooks()  [to reduce the logic in main()]
396
397     * read the config tree just once, and process N times (as necessary)
398
399     * (possibly) use UUIDs in mod_unique_id and/or mod_usertrack
400
401     * (possibly) port the bug fix for PR 6942 (segv when LoadModule is put
402       into a VirtualHost container) to 2.0.
403
404     * shift stuff to mod_core.h
405
406     * callers of ap_run_create_request() should check the return value
407       for failure (Doug volunteers)
408
409     * Win32: Get Apache working on Windows 95/98. The following work
410         (at least) needs to be done:
411         - Document warning that OSR2 is required (for Crypt functions, in
412         rand.c, at least.)  This could be resolved with an SSL library, or
413         randomization in APR itself.
414         - Bring the Win9xConHook.dll from 1.3 into 2.0 (no sense till it
415         actually works) and add in a splash of Win9x service code.
416
417     * Fix the worker MPM to use POD to kill child processes instead
418       of ap_os_killpg, regardless of how they should die.
419
420     * Scoreboard structures could be changed in the future such that
421       proper alignment is not maintained, leading to segfaults on 
422       some systems.  Cliff posted a patch to deal with this issue but
423       later recanted. See this message to dev@apr.apache.org:
424       Message-ID: <Pine.LNX.4.44.0203011354090.16457-200000@deepthought
425                   .cs.virginia.edu>
426
427     * When sufficiently tested, the AllowEncodedSlashes/%2f patch
428       needs to be backported to 2.0 and 1.3.
429
430     * APXS either needs to be fixed completely for use when apr is out of tree,
431       or it should drop query mode altogether, and we just grow an 
432       httpd-config or similar arrangement. 
433       To quote a discussion in STATUS earlier:
434
435           thommay: this doesn't fix all the problems with apxs and out of
436                    tree apr/apr-util, but it's a good start. There's still the 
437                    query cases; but I'm beginning to think that in these cases 
438                    the app should be querying ap{r,u}-config directly
439           gstein: agreed. apxs should deprecate the -q flag
440
441 TODO ISSUES REMAINING IN MOD_SSL:
442
443     * In order to use a DSO version of mod_ssl we have to link with
444       -lssl and -lcrypto. A workaround is in place right now where the
445       entire EXTRA_LIBS macro is being appended to the objects list, but
446       this is a hack. We should either revamp the APACHE_CHECK_SSL_TOOLKIT
447       autoconf function or come up with some other autoconf checks to
448       search for libssl and libcrypto and properly add them to mod_ssl's
449       link flags.
450
451     * SSL renegotiations in combination with POST request
452
453     * Port or dispose all code inside #if 0...#endif blocks that remain
454       from the porting effort.
455
456     * Do we need SSL_set_read_ahead()?
457
458     * the ssl_expr api is NOT THREAD SAFE.  race conditions exist:
459        -in ssl_expr_comp() if SSLRequire is used in .htaccess
460         (ssl_expr_info is global)
461        -is ssl_expr_eval() if there is an error
462         (ssl_expr_error is global)
463
464     * SSLRequire directive (parsing of) leaks memory
465
466     * Diffie-Hellman-Parameters for temporary keys are hardcoded in
467       ssl_engine_dh.c, while the comment in ssl_engine_kernel.c says:
468       "it is suggested that keys be changed daily or every 500
469       transactions, and more often if possible."
470
471     * ssl_var_lookup could be rewritten to be MUCH faster
472
473     * CRL callback should be pluggable
474
475     * session cache store should be pluggable
476
477     * init functions should return status code rather than ssl_die()
478
479     * ssl_engine_pphrase.c needs to be reworked so it is generic enough
480       to also decrypt proxy keys
481
482     * the shmcb code should just align its memory segment rather than
483       jumping through all the "safe" memcpy and memset hoops
484
485 WISH LIST
486     * mod_proxy performance: when mod_proxy is configured to do proxy
487       gateway (aka reverse proxy), it would be nice to be able to reuse
488       connections to the backend servers. Now, connections to the 
489       backend servers are taken down when the corresponding frontend
490       connection is taken down.
491
492     * mod_proxy: Ability to run SSL over proxy gateway connections,
493       encrypting (or reencrypting) at the proxy.
494
495     * mod_proxy: Add capability of mod_proxy to load balance across
496       a farm of backend servers.
497
498     * mod_cache: Handle ESI tags.
499
500 EXPERIMENTAL MODULES:
501
502     Experimental modules should eventually be be promoted to fully supported
503     status or removed from the repository entirely (ie, the
504     'experiment' failed). This section tracks what needs to happen to 
505     get the modules promoted to fully supported status.
506
507     mod_cache/mod_mem_cache/mod_disk_cache:
508     * mod_cache: handle cache_control: no_cache "field_name" to enable 
509       cacheing the response w/o header "field_name"
510       See RFC2616 section 14.9.1
511
512     * mod_mem_cache: Consider adding a RevalidateTimeout directive to
513       specify time at which local cached content is to be revalidated
514       (ie, underlying file stat'ed to see if it has changed).
515
516     * mod_cache: CacheEnable/CacheDisable should accept regular expressions.
517
518     * mod_cache: Fix dependency on ATOMIC operators. Need
519       APR_HAS_ATOMIC_* feature macros.
520
521     * mod_disk_cache: Implement garbage collection
522
523     * mod_mem_cache/mod_disk_cache: Need to be able to query cache
524       status (num of entries, cache object properties, etc.).
525       mod_status could be extended to query optional hooks defined
526       by modules for the purpose of reporting module status.
527       mod_cache (et. al.) could define optional hooks that are called
528       to collect status.  Status should be queryable by
529       HTTP or SNMP?
530
531     * Enable mod_cache/mod_mem_cache/mod_disk_cache to handle
532       multiviews
533
534     * mod_mem_cache/mod_disk_cache: Complete implementing config
535       directives (mod_disk_cache: CacheExpiryCheck and GC directives
536       including CacheGc*, CacheSize, and, CacheTimeMargin)
537       (mod_mem_cache: MCacheMaxObjectCount) and
538       (mod_cache: CacheForceCompletion). 
539
540     mod_auth_ldap/util_ldap:
541     * General stabilization and testing
542     
543
544 PRs that have been suspended forever waiting for someone to
545 put them into 'the next release':
546
547     * documentation and Q&A
548
549       PR#2221: Make online documentation search link back to my installation
550         Status: 
551
552       PR#2906: Propose that Apache recommend $UNIQUE_ID for all "session id"
553       algorithms
554         Status: 
555
556       PR#2793: When will Apache support P3P? Any Plans?
557         Status: 
558
559     * build
560
561       PR#2113: HTTP Server Rebuild Line Needs Changing for the better
562         Status: 
563
564       PR#2421: problem specifying ndbm library for build ?with autoconfigure
565         Status: 
566
567     * config
568
569       PR#76: missing call to "setlocale();"
570         Status: 
571
572       PR#628: Request of "Options SymLinksIfGroupMatch"
573         Status: 
574
575       PR#793: RLimitCPU and RLimitMEM don't apply to all children like they should
576         Status: 
577
578       PR#922:  it is useful to allow specifiction that root-owned symlinks
579       should always be followed
580         Status: 
581
582       PR#1028: DoS attacks involving memory consumption
583         Status: 
584
585       PR#1191: setlogin() is not called, causing problems with e.g. identd
586         Status: 
587
588       PR#1204: regerror() exists, use it
589         Status: 
590
591       PR#2284: Can not POST to ErrorDocument - Apache/1.3b6
592         Status: 
593
594       PR#2396: Proposal for TimeZone directive
595         Status: 
596
597       PR#2446: AllowOverride FileInfo is too coarse
598         Status: 
599
600       PR#2760: [PATCH] User/Group for <Directory> and <Location> i.e. not only
601       in global and <Virtual>.
602         Status: 
603
604       PR#2907: suggestion: power up your Include directive :)
605         Status: 
606
607       PR#3018: cannot limit some HTTP methods
608         Status: 
609
610       PR#3677: New ErrorDocumentMatch directive
611         Status: 
612
613       PR#4244: "Files" and "FilesMatch" regexp does not recognize bang as
614       negation operator
615         Status: 
616
617       PR#5993: AllowOverride should have a 'CheckNone' and 'AllowNone' argument
618       instead of only 'None'
619         Status: 
620
621     * mod_access
622
623       PR#537: mod_access syntax allows hosts that should be restricted
624         Status: 
625
626       PR#1287: add allow,deny/deny,allow warning to mod_access
627         Status: 
628
629       PR#2512: <IfDenied> directive wanted
630         Status: 
631
632     * mod_auth-any
633
634       PR#557: ~UserHome directories are not honored in absolute pathname
635       requests (.htaccess)
636         Status: 
637
638       PR#1117: Using NIS passwd.byname dbm files with AuthDBMUserFile
639         Status: 
640
641       PR#1809: Suggestion for improving authentication modules and core source
642       code, problem with 401 and ErrorDocument
643         Status: 
644
645     * mod_autoindex
646
647       PR#1263: Add frame-safe anchor attribute to mod_autoindex links
648         Status: 
649
650     * mod_cgi (and suexec)
651
652       PR#921: suexec Uses cwd before filling it in, doesn't use syslog
653         Status: 
654
655       PR#1176: Apache cannot handle continuation line in headers
656         Status: 
657
658       PR#1120: suexec does not parse arguments to #exec cmd
659         Status: 
660
661       PR#1268: CGI scripts running as Apache user: security (suexec etc.)
662         Status: 
663
664       PR#1285: Error messages could be easier to spot in cgi.log file for suexec.c
665         Status: 
666
667       PR#1905: suexec - Allow modules to set user:group for execution.
668         Status: 
669
670       PR#2360: suexec for general access of user content?
671         Status: 
672
673       PR#2460: TimeOut applies to output of CGI scripts
674         Status: 
675
676       PR#2573: CGI's for general use still have to be run as another user
677       with suExec
678         Status: 
679
680       PR#4241: Need to be able to override shebang line to make CGI scripts
681       more portable.
682         Status: 
683
684       PR#4490: mod_cgi prevents handling of OPTIONS requests
685         Status: 
686
687     * mod_env
688
689       PR#370: Modified PATH environemnt variable is not passed, instead
690       system's is used
691         Status: 
692
693     * mod_headers
694
695       PR#1383: I make mod_headers to modify request headers as well as
696       response ones.
697         Status: 
698
699       PR#1677: mod_headers should allow mod_log_config-style formats in
700       header values
701         Status: 
702
703     * mod_imap
704
705       PR#759: imap should read <MAP><AREA>*</MAP> too!
706         Status: 
707
708     * mod_include
709
710       PR#78: Additional status for XBitHack directive
711         Status: 
712
713       PR#623: A smarter "Last Modified" value for SSI documents (see PR number 600)
714         Status: 
715
716       PR#1145: mod_include
717       Allow for Last-Modified: without resorting to XBitHack
718         Status: 
719
720       PR#1803: patches to mod_include to allow for file tests
721         Status: 
722
723       PR#4459: Suggestion for better handling of Last-modified headers
724         Status: 
725
726     * mod_info
727
728       PR#2415: /server-info doesn't check for the virtual host to list the info
729         Status: 
730
731     * mod_log-any
732
733       PR#1050: Logging of virtual server to error_log as well
734         Status: 
735
736       PR#1358: Selective url-encode of log fields (or maybe a pseudo
737       log_rewrite module?)
738         Status: 
739
740       PR#2073: pipelined connections are not logged correctly
741         Status: 
742
743       PR#4448: Please allow CGI env variables (QUERY_STRING, ...) to be logged
744       with %{}e
745         Status: 
746
747     * mod_negotiation
748
749       PR#3191: no way to set global quality-of-source (qs) coneg values
750       with multiviews
751         Status: 
752
753     * mod_proxy
754
755       PR#362: Mod_proxy doesn't allow change of error pages
756         Status: 
757
758       PR#440: Proxy doesn't deliver documents if not connected
759         Status: 
760
761       PR#534: proxy converts ~name to %7Ename when name starts with a dot (.)
762         Status: 
763
764       PR#612: Proxy FTP Authentication Fails
765         Status: 
766
767       PR#700: Proxy doesn't do links right for OpenVMS files through ftp:
768         Status: 
769
770       PR#980: Controlling Access to Remote Proxies would be nice...
771         Status: 
772
773       PR#994: Adding authentication "on the fly" through the proxy module
774         Status: 
775
776       PR#1085: ProxyRemote make a dead cycle.
777         Status: 
778
779       PR#1166: ``nph-'' not honored (no buffering) for ProxyRemote mapping
780         Status: 
781
782       PR#1290: Need to know "hit-rate" on proxy cache
783         Status: 
784
785       PR#1532: Proxy transfer logging
786         Status: 
787
788       PR#1547: No HTTP_X_FORWARDED_FOR set...
789         Status: 
790
791       PR#1567: ProxyRemote proxy requests fail authentication by firewall
792         Status: 
793
794       PR#1702: mod_proxy to support persistent conns?
795         Status: 
796
797       PR#1878: listing of proxy cache content
798         Status: 
799
800       PR#2314: patterns in ProxyRemote
801         Status: 
802
803       PR#2648: Cache file names in Proxy module
804         Status: 
805
806       PR#3568: Accessing URL through proxy server corrupts data.
807         Status: 
808
809       PR#3605: Some anonymous FTP URLs ask for authentication
810         Status: 
811
812     * mod_rewrite
813
814       PR#1582: mod_rewrite forms REQUEST_URI different than mod_cgi does
815         Status: 
816
817       PR#2074: mod_rewrite doesn't pass Proxy Throughput on internal subrequests
818         Status: 
819
820     * mod_status
821
822       PR#2138: mod_status always displays 256 possible connection slots
823         Status: 
824
825       PR#2343: Status module averages are for entire uptime
826         Status: 
827
828     * apache-api
829
830       PR#1004: request_config field in request_rec is moderately bogus
831         Status: 
832
833       PR#1158: improvements to child spawning API
834         Status: 
835
836       PR#1233: there is no way to keep per-connection per-module state
837         Status: 
838
839       PR#2024: adding auth_why to conn_rec
840         Status: 
841
842       PR#2873: Feedback/Comment on APACI
843         Status: 
844
845       PR#3143: No module specific data hook for per-connection data
846         Status: 
847
848     * generally odds and ends
849
850       PR#2431: A small addition to rotatelogs.c to improve program functionality.
851         Status: 
852
853       PR#2763: mailto tags and bundling bug report script
854         Status: 
855
856       PR#2785: os-aix Support for System Resource Controller
857         Status: 
858
859       PR#2889: Inclusion of RPM spec file in CVS/distributions
860         Status: 
861
862       PR#5713: os-windows [PATCH] install as win32 service with domain account
863         Status: Cannot accept password-as-arg, we should prompt the
864                 user when -k install/-k config with a user argument.
865
866
867
868 Other bugs that need fixing:
869
870     * ap_discard_request should be converted to use the bucket API
871       directly rather than waste cycles copying buffers with the old API.
872
873     * MaxRequestsPerChild measures connections, not requests.
874         Until someone has a better way, we'll probably just rename it
875         "MaxConnectionsPerChild".
876     
877     * Regex containers don't work in an intutive way
878         Status: No one has come up with an efficient way to fix this
879         behavior. Dean has suggested getting rid of regex containers
880         completely.
881         OtherBill suggests: We at least seem to agree on eliminating
882                             the <Container ~ foo> forms, and using only
883                             <ContainerMatch foo> semantics.
884
885     * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
886       sigwaiting thread. We need to work around this, perhaps unless
887       there is hope soon for a fixed glibc.
888
889     * orig_ct in the byterange/multipart handling may not be
890       needed. Apache 1.3 just never stashed "multipart" into
891       r->content_type. We should probably follow suit since the
892       byterange stuff doesn't want the rest of the code to see the
893       multipart content-type; the other code should still think it is
894       dealing with the <orig_ct> stuff.
895         Status: Greg volunteers to investigate (esp. since he was most 
896                 likely the one to break it :-)
897
898 Binaries (probably not till beta):
899
900  Platform                      Avail.  Volunteer
901  ------------------------------------------------------------------
902  AIX 4.3.3                     no      Bill Stoddard
903  Mandrake 8.1                  no      open
904  FreeBSD 4.1                   no      open
905  hppa2.0w-hp-hpux11.00         no      Cliff Woolley
906  i386-pc-solaris2.8            no      Aaron Bannert
907  i386-unknown-freebsd4.5       no
908  i386-unknown-freebsd4.6       no      Cliff Woolley
909  i686-pc-linux-gnu-slackware81 no      Cliff Woolley
910  i686-pc-linux-gnu-rh70        no      Aaron Bannert
911  i686-pc-linux-gnu-rh73        no      Cliff Woolley
912  ia64-hp-hpux11.20             no
913  powerpc-apple-darwin5.5       no      Aaron Bannert
914  powerpc-unknown-linux-gnu     no      Graham Leggett
915  s390-ibm-linux                no      Greg Ames
916  sparc-sun-solaris2.8          no      Jim Jagielski
917  NetWare                       no      Brad Nicholes
918  OS/2                          no      Brian Havard
919  OS/390                        no      Greg Ames
920  Win32-x86                     no      William Rowe