]> granicus.if.org Git - apache/blob - STATUS
Move the 31 + fixes note to the beginning of the section.
[apache] / STATUS
1 APACHE 2.0 STATUS:                                              -*-text-*-
2 Last modified at [$Date: 2002/02/06 22:30:56 $]
3
4 Release:
5
6     2.0.32  : in development
7     2.0.31  : rolled Feburary 1, 2002.
8     2.0.30  : tagged January 8, 2002.  not rolled.
9     2.0.29  : tagged November 27, 2001.  not rolled.
10     2.0.28  : released November 13, 2001
11     2.0.27  : rolled November 6, 2001
12     2.0.26  : tagged October 16, 2001.  not rolled.
13     2.0.25  : rolled August 29, 2001
14     2.0.24  : rolled August 18, 2001
15     2.0.23  : rolled August 9, 2001
16     2.0.22  : rolled July 29, 2001
17     2.0.21  : rolled July 20, 2001
18     2.0.20  : rolled July 8, 2001
19     2.0.19  : rolled June 27, 2001
20     2.0.18  : rolled May 18, 2001
21     2.0.17  : rolled April 17, 2001
22     2.0.16  : rolled April 4, 2001
23     2.0.15  : rolled March 21, 2001
24     2.0.14  : rolled March 7, 2001
25     2.0a9   : released December 12, 2000
26     2.0a8   : released November 20, 2000
27     2.0a7   : released October 8, 2000
28     2.0a6   : released August 18, 2000
29     2.0a5   : released August 4, 2000
30     2.0a4   : released June 7, 2000
31     2.0a3   : released April 28, 2000
32     2.0a2   : released March 31, 2000
33     2.0a1   : released March 10, 2000
34
35 Please consult the following STATUS files for information
36 on related projects:
37
38     * srclib/apr/STATUS
39     * srclib/apr-util/STATUS
40     * docs/STATUS
41
42
43 CURRENT RELEASE NOTES:
44
45     * Proposed BETA possibilities
46       31 + fixes for all resolved problems and call it 32 (instead of HEAD)
47         See: http://www.apache.org/~jerenkrantz/httpd-2.0.jre.patch
48         +1: trawick, Justin
49         +0:
50         -1:
51
52     * 31 BETA STATUS:
53         running on Daedalus since  02-Feb-2002 7:58 PST (need 3 days)
54         Compiles on : AIX 4.3, Solaris, FreeBSD 3.4 & 4.5, Win32, 
55                       Linux 2.2 & 2.4, HPUX
56         Broken on: Win32 [no error logging within service, other bugs]
57         for beta
58             +1 : Aaron
59             +0 : Lars, Justin, trawick
60             -0 : OtherBill
61             -1 : BillS, Ian, gregames, BrianP, Jim
62         bumps since original tag:
63             * mod-dir patch
64             * scoreboard x2 : 1 to fix gracefull restarts
65                               1 to fix netware
66             * win32/locks.c : to fix mod_rewrite on win32
67
68         problems with v31:
69             * libtool/binbuild on AIX -- possible addition of patched 
70                     binbuild.sh to 31-beta roll
71                 +1: Ian, Justin
72                 +0:
73                 -1:
74                 Jeff says: We can't do anything about libtool since AIX
75                            needs a version that won't work on some
76                            platforms.  Handle this in the README.
77                            The binbuild issue isn't AIX.  It is
78                            something that could happen anywhere that
79                            the binbuild-er has their own expat.
80                            Handle this by patching binbuild.sh for a
81                            beta roll or putting a patch in the README for
82                            use by people who want to do binbuild but
83                            have expat installed locally.
84                 gregames:  why can't we roll a second tarball with the
85                            appropriate libtool version?  doesn't
86                            Darwin need it as well as AIX? 
87
88             * erroneous check in an AP_DEBUG_ASSERT() call.  Only happens
89               in maintainer mode.  Fixed in modules/http/http_protocol.c
90               revision 1.391
91
92             * seg faults in core_input_filter when the client goes away
93               before any POST body bytes are received.
94                 Jeff committed a fix with server/core.c revision 1.144.
95                 Justin committed a fix with server/protocol.c revision 1.78
96                 (server/protocol.c revision 1.81 demotes a potentially
97                  annoying error message)
98
99             * FirstBill reports problem [re]starting as-a-service, shared
100               score is suspect.  OtherBill is investigating... has found
101                  . created restart and shutdown events, only restart
102                    survived initialization on XP, although breaking into 
103                    the debugger interferes with reproducing the bug.  
104                    Perhaps in FirstBill's example _restart didn't survive.
105                  . Scoreboard appears irrelevant to the problem.
106                  . This looks like handle corruption in NT/XP
107                  . Args are not initialized correctly when the -k install
108                    is given.
109               OtherBill will not create Win32 binaries due to this bug.
110
111             * mod_auth_dbm can't open a Berkeley DB password file on Unix
112                 Justin postulates that this might be related to the fact
113                 that mod_auth_dbm wasn't using apr-util.  See
114                 modules/aaa/mod_auth_dbm.c revision 1.42 and
115                 module/aaa/config.m4 revision 1.54.  Also, FreeBSD's DB
116                 variant was not properly detected.  See
117                 apr-util/build/apu-conf.m4 revision 1.31 and
118                 apr-util/dbm/apr_dbm_berkeleydb.c revision 1.17.
119             
120             * Madhu reports that the worker MPM doesn't shutdown nicely
121               after a stress test.
122
123             * mod_autoindex displays the wrong icon for subdirectories
124               on Unix
125                 possible fix in modules/generators/mod_autoindex.c r1.93.
126
127             * anon shared memory not allocating enough 
128                 (fix is apr/shm/unix/shm.c 1.14)
129
130 FINAL RELEASE SHOWSTOPPERS:
131
132     * ap_directory_walk skips some per-dir config merge functions
133       if there is no "<Directory />" block in the configuration
134         Message-ID: <m3itbdiijq.fsf@rdu163-40-092.nc.rr.com>
135         * That is very unlikely, merges are additive.  Much more likely,
136           the default SetOutputFilter default or merge is borked.
137           Unless it's the code that permits 'null' merges, per module.
138           Still, it's probably in SetOutputFilter's behavior.
139         * BrianP notes: directory_walk's handling of trailing slashes
140           appears to be the cause: <3C1CF721.1090300@pacbell.net>
141
142     * If any request gets to the core handler, without a flag that this 
143       r->filename was tested by dir/file_walk, we need to 500 at the very 
144       end of the ap_process_request_internal() processing.  This provides
145       authors of older modules better compatibility, while still improving
146       the security and robustness of 2.0. 
147         Status: still need to decide where this goes, OtherBill comments...
148         Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net>
149         we need to look at halting this in the 'default handler' case,
150         and that implies pushing the 'handler election' into the request
151         internal processing phase from the run request phase.
152
153     * Convert all instances of the old apr_lock_t type to the new
154       types (once they are fully supported in APR).
155         Status: Aaron is working on converting INTRAPROCESS
156                 to apr_thread_mutex_t types. Full replacements for
157                 LOCKALL and CROSS_PROCESS are not yet complete on all
158                 platforms, and should only be used in MPMs like worker
159                 with limited OS exposure.
160         BrianP asks: "Is this really a showstopper?"
161         IanH says: "If we don't do it before we go live we will have 2
162                     different API's to support in APR"
163
164     * [Ken] Test suite failures:
165       o worker is also failing some of the 'cgi' subtests
166       (see <URL:http://Source-Zone.Org/Apache/regression/>):
167         Justin says: "Worker should be fine and passes httpd-test here.
168                       If you can provide evidence that it can be reproduced
169                       outside of httpd-test, then it's a showstopper.  I
170                       think it's a perl or a httpd-test problem."
171         Not a showstopper: Justin
172
173     * [Ken] A binbuild installation picks up the right libraries when
174       running apachectl because we set the appropriate environment
175       variable, but ab, htpasswd, etc. don't know how to pick up apr,
176       apr-util, etc.
177         Message-ID: <20020116000226.GA15991@ebuilt.com>
178         Justin says: "You could always build all of the binaries
179                       statically if you don't want to let libtool
180                       handle it.  At most, I don't consider this a
181                       a release showstopper as it is a packaging issue."
182         Ken sez: "Showstopper because, until it's the default, it
183                  violates the P of LA.  Binaries will give strange
184                  errors and not run if moved."
185         Status: Aaron volunteers: I'll commit a patch to allow all
186                 the support binaries to be built statically against
187                 libapr/libaprutil/etc and then enable it in binbuild.
188         gregames says: what about httpd?  yeah, it works at the moment
189                        if you use apachectl.  But I've already heard
190                        complaints about not being able to execute 
191                        httpd directly.
192
193 CURRENT VOTES:
194
195     * Should we always build binaries statically unless otherwise
196       indicated?
197         Message-ID: <20020129210006.B23512@Lithium.MeepZor.Com>
198
199       +1:  Ken
200       -1:  Justin, Ian
201         
202     * If the parent process dies, should the remaining child processes
203       "gracefully" self-terminate. Or maybe we should make it a runtime
204       option, or have a concept of 2 parent processes (one being a 
205       "hot spare").
206       See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
207
208       Self-destruct: Ken, Martin
209       Not self-destruct: BrianP, Ian, Cliff, BillS
210       Make it runtime configurable: Aaron, Jim, Justin
211       Have 2 parents: +1: Jim
212                       -1: Justin
213                       +0: Martin (while standing by, could it do
214                                   something useful?)
215       look at accept() error handling first: gregames
216
217     * Make the worker MPM the default MPM for threaded Unix boxes.
218       +1:   Justin, Jeff, Ian
219       -0:   Aaron (premature decision, needs more discussion), Lars
220       -0:   Cliff (I think the default config should be the safest possible)
221
222 RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
223
224     * Usage of APR_BRIGADE_NORMALIZE in core_input_filter should be
225       removed if possible.
226         Message-ID: <Pine.LNX.4.33.0201202232430.318-100000@deepthought.cs.virginia.edu>
227         
228     * There is a bug in how we sort some hooks, at least the pre-config
229       hook.  The first time we call the hooks, they are in the correct 
230       order, but the second time, we don't sort them correctly.  Currently,
231       the modules/http/config.m4 file has been renamed to 
232       modules/http/config2.m4 to work around this problem, it should moved
233       back when this is fixed.    rbb
234         Justin says: "Is this really a showstopper?  This has been here
235                       forever.  What's wrong?  Does this have to do with
236                       autoconf or m4?"
237         Not a showstopper: Justin, BrianP, trawick, gregames
238
239     * The Add...Filter and Set...Filter directives do not allow the
240       administrator to order filters, beyond the order of filename (mime)
241       extensions.  It isn't clear if Set...Filter(s) should be inserted 
242       before or after the Add...Filter(s) which are ordered by sequence of
243       filename extensions.  At minimum, some sort of +-[0-10] syntax seems
244       like the quickest fix for a 2.0 gold release.
245         Justin says: "Could we delay this for a point release or 2.1?"
246         Not a showstopper: justin, wrowe, trawick, stoddard, Jim, Ian, Aaron,
247                            gregames
248
249     * Make some modifications to the scoreboard creation routines,
250       prefer anonymous shared memory, and allow a configuration
251       directive to override the defaults.
252         Message-ID: <20020130080804.C16977@clove.org>
253       Status: Aaron volunteers
254
255     * Get perchild to work on platforms other than Linux. This
256       will require a portable mechanism to pass data and file/socket
257       descriptors between vhost child groups. An API was proposed
258       on dev@apr:
259         Message-ID: <20020111115006.K1529@clove.org>
260
261     * Recent changes to ap_rgetline may have broken EBCDIC boxes.
262         Message-ID: <20020122072605.GF28051@ebuilt.com>
263         Justin says: "I don't have an EBCDIC box to test on.  A potential
264                       solution is to split out ap_rgetline into two
265                       functions as described in this message."
266         gregames says: I see the breakage now, and volunteer to fix it
267                        when things calm down a little.  It looks OK when 
268                        there are complete lines and no mime continuations.
269
270     * Modify the worker MPM so that it doesn't need to create and
271       destroy a pool for each request--possibly by adopting a
272       leader/follower model in which each worker owns a persistent
273       ptrans pool (like the prefork MPM) and the workers take
274       turns acting as listeners...this approach might also help
275       reduce context-switching
276
277     * CGI single-byte reads
278       BrianP suggests that this is caused by the ap_scan_script_header_err()
279       routine, which will do single-byte reads until it finds the end
280       of the header, at which point it constructs a pipe-bucket (buffered)
281       to read from.
282       Proposed solution in:
283         Message-ID: <3C36ADAF.60601@cnet.com>
284
285     * Try to get libtool inter-library dependency code working on AIX.
286         Message-ID: <cm3n10lx555.fsf@rdu163-40-092.nc.rr.com>
287
288       Justin says: If we get it working on AIX, we can enable this
289                    on all platforms and clean up our build system
290                    somewhat.
291       Jeff says:   I thought I tested a patch for you sometime in
292                    January that you were going to commit within a few
293                    days.
294
295     * Handling of %2f in URIs.  Currently both 1.3 and 2.0
296       completely disallow %2f in the request URI path (see
297       ap_unescape_url() in util.c).  It's permitted and passed
298       through in the query string, however.  Roy says the
299       original reason for disallowing it, from five years ago,
300       was to protect CGI scripts that applied PATH_INFO to
301       a filesystem location and which might be tricked by
302       ..%2f..%2f(...).  We *should* allow path-info of the
303       form 'http://foo.com/index.cgi/path/to/path%2finfo'.
304       Since we've revamped a lot of our processing of path
305       segments, it would be nice to allow this, or at least
306       allow it conditionally with a directive.
307
308     * FreeBSD, threads, and worker MPM.  All seems to work fine 
309       if you only have one worker process with many threads.  Add 
310       a second worker process and the accept lock seems to be
311       lost.  This might be an APR issue with how it deals with
312       the child_init hook (i.e. the fcntl lock needs to be resynced).
313       More examination and analysis is required.
314         Status: This has also been reported on Cygwin.  
315         Message-ID: <3C2CC514.8EF3BED1@wapme-systems.de> (cygnus)
316
317       Justin says: So, FreeBSD-CURRENT and Cywin have the same 
318                    problem.  Yum.  If another platform has this
319                    with worker, this becomes a showstopper.
320       Aaron says: I spent some time disecting this and have come to
321               the conclusion that it is not a problem in the worker MPM
322               (or at least, it is not isolated to a problem in worker).
323               I'll list some of the problems I'm seeing in case someone
324               else wants to pick up where I've left off:
325                - Delivery of just about any signal to one of the child
326                  processes will send it into an infinite loop as well.
327                - Even though the parent is spinning out of control,
328                  at first the child or children will appear to work
329                  properly. At times it is possible to get it into a state,
330                  however, where a request will hang until another concurrent
331                  request "kicks" the first, at which point the second will
332                  hang. My theory is that this has to do with the
333                  pthread_cond_*() implementation in FreeBSD, but it's still
334                  possible that it is in APR.
335       
336       Justin adds: Oh, FreeBSD threads are implemented entirely with 
337                    select()/poll()/longjmp().  Welcome to the nightmare.
338                    So, that means a ktrace output also has the thread 
339                    scheduling internals in it (since it is all the same to 
340                    the kernel).  Which makes it hard to distinguish between 
341                    our select() calls and their select() calls.  
342                    *bangs head on wall repeatedly*  But, some of the libc_r 
343                    files have a DBG_MSG #define.  This is moderately helpful
344                    when used with -DNO_DETACH.  The kernel scheduler isn't 
345                    waking up the threads on a select().  Yum.  And, I bet 
346                    those decrementing select calls have to do with the 
347                    scheduler.  Time to brush up on our OS fundamentals.
348
349     * There is increasing demand from module writers for an API
350       that will allow them to control the server Ã  la apachectl.
351       Reasons include sole-function servers that need to die if
352       an external dependency (e.g., a database) fails, et cetera.
353       Perhaps something in the (ever more abused) scoreboard?
354         rbb: I don't believe the scoreboard is the correct mechanism
355              for this.  We already have a pipe that goes between parent
356              and child for graceful shutdown events, along with an API that
357              can be used to send a message down that pipe.  In threaded MPMs,
358              it is easy enough to make that one pipe be used for graceful
359              and graceless events, and it is also easy to open that pipe
360              to both parent and child for writing.  Then we just need to
361              figure out how to do graceless on non-threaded MPMs.
362
363     * revamp the input filter behavior, per discussions since
364       February (and especially at the hackathon last
365       April). Specifically, ap_get_brigade will return a brigade with
366       *up to* a specific number of bytes, or a "line" of data. The
367       read may be blocking or nonblocking. ap_getline() will be
368       refactored into apr_brigade_getline(), and then DECHUNK can use
369       f->next (ap_getline will always read "top of input stack"). Also 
370       fix the bug where request body content will end up closing the
371       connection (buggering up persistent conns).
372         Status: Justin is working on this as fast as he can.
373               The core input filters, HTTP-related filters, mod_ssl,
374               mod_proxy, and ap_[r]getline are switched to the new logic.  
375
376       - socket bucket and core input filter changes. see end of
377         message ID (Feb 27): <20010227075326.S2297@lyra.org>
378
379       - fix up ap_get_brigade() semantics, fix bug in DECHUNK /
380         ap_getline. many messages (plus their threads) (Apr/May):
381           Message-ID: <20010402101207.J27539@lyra.org>
382           Message-ID: <3AF7F921.D2EEC41A@algroup.co.uk>
383           Message-ID: <20010508190029.E18404@lyra.org>
384
385       - further work with combining/tweaking the builtin filters:
386           Message-ID: <20010509115445.D1374@lyra.org>
387
388       - thoughts on filter modes:
389           Message-ID: <021b01c14dee$09782af0$93c0b0d0@roweclan.net>
390
391       - proposal for getline rewrite:
392           Message-ID: <20011231104019.GD3904@ebuilt.com>
393
394       - patch for getline rewrite:
395           Message-ID: <20020122072605.GF28051@ebuilt.com>
396
397       - Change ap_get_brigade prototype:
398           Message-ID: <20020120115136.GI17601@ebuilt.com>
399
400     * Allow the DocumentRoot directive within <Location > scopes?  This
401       allows the beloved (crusty) Alias /foo/ /somepath/foo/ followed
402       by a <Directory /somepath/foo> to become simply 
403       <Location /foo/> DocumentRoot /somefile/foo (IMHO a bit more legible
404       and in-your-face.)  DocumentRoot unset would be accepted [and would
405       not permit content to be served, only virtual resources such as
406       server-info or server-status.
407         This proposed change would _not_ depricate Alias.
408
409     * Win32: Rotatelogs sometimes is not terminated when Apache
410       goes down hard.  FirstBill was looking at possibly tracking the 
411       child's-child processes in the parent process.
412         OtherBill asks, wasn't this fixed? 
413         stoddard: Not fixed. Shared scoreboard might offer a good
414         way for the parent to keep track of 'other child' processes
415         and whack them if the child goes down.
416
417     * Win32: Add a simple hold console open patch (wait for close or
418         the ESC key, with a nice message) if the server died a bad 
419         death (non-zero exit code) in console mode.
420         Resolution: bring forward same ugly hacks from 1.3.13-.20
421
422     * Port of mod_ssl to Apache 2.0:
423
424       The current porting state is summarized in modules/ssl/README. The
425       remaining work includes:
426       (1) stablizing/optimizing the SSL filter logic
427       (2) Enabling the various SSL caching mechanisms (shmcb, shmht)
428       (3) Enabling SSL extentions
429       (4) Trying to seperate the https filter logic from mod_ssl -
430           This is to facilitate other modules that wish to use the https
431           filter or the mod_ssl logic or both as required.
432         Justin: mod_ssl filter logic is redone, so that should be fine.
433                 Madhu has submitted a patch for SSL caching - however, I
434                 am -0 on that patch as I *think* we could implement the
435                 shared memory another way that is much cleaner (i.e.
436                 treat shmem directly as a dbm via APR routines).  Justin 
437                 also thinks that the https filter logic may be sufficiently
438                 decoupled now, but isn't really sure.
439
440     * Performance & Debug: Eliminate most (and perhaps all) of the 
441       malloc/free calls in the bucket brigade code.  Need some 
442       light weight memory management functions that allow freeing 
443       memory (putting it back into a memory pool) when it is no 
444       longer needed. Enabling simple debugging features like guard
445       bands, double free detection, etc. would be cool but certainly
446       not a hard requirement.
447
448           Status: Cliff started to implement this using SMS as has
449                   been discussed at length for months, but since
450                   SMS is not being used anywhere else in the server,
451                   several people expressed the opinion that we should
452                   get rid of it entirely, meaning that the buckets
453                   need their own memory management (free list) functions.
454                   Cliff will implement that this weekend so we at least
455                   have something to look at/compare with.
456
457     * Eliminate unnecessary creation of pipes in mod_cgid
458         Status: Ken asks, didn't Jeff fix this when he fixed the queue
459                 overrun?
460
461     * the autoconf setup should be fixed to default to using the 
462       "Apache" layout from config.layout, and each variable settable
463       in a layout should be overridable on the command line.  Plus,
464       what we do right now just doesn't seem to fully fit into how autoconf
465       works, eg. AC_PREFIX_DEFAULT issues.
466         Message-ID: <Pine.BSF.4.20.0104031557420.20876-100000@alive.znep.com>
467
468     * Combine log_child and piped_log_spawn. Clean up http_log.c.
469       Common logging API.
470
471     * Document mod_file_cache.
472
473     * Platforms that do not support fork (primarily Win32 and AS/400)
474       Architect start-up code that avoids initializing all the modules 
475       in the parent process on platforms that do not support fork.
476
477     * Win32: Migrate the MPM over to use APR thread/process calls. This
478       would eliminate some code in the Win32 branch that essentially
479       duplicates what is in APR.
480
481     * There are still a number of places in the code where we are
482       losing error status (i.e. throwing away the error returned by a
483       system call and replacing it with a generic error code)
484
485     * Mass vhosting version of suEXEC.
486
487     * All DBMs suffer from confusion in support/dbmmanage (perl script) since 
488       the dbmmanage employs the first-matched dbm format.  This is not
489       necessarily the library that Apache was built with.  Aught to
490       rewrite dbmmanage upon installation to bin/ with the proper library 
491       for predictable mod_auth_dbm administration.
492         Questions; htdbm exists, time to kill dbmmanage, or does it remain
493                    useful as a perl dbm management example?  If we keep it,
494                    do we address the issue above?
495
496     * use apu_dbm in mod_auth_dbm
497         Status: Greg +1 (low-priority volunteer)
498         Justin says: "Seems like this is already there, so should we just 
499                       remove the other DBM code in that file?  If you want 
500                       to use gdbm, or dbm, etc, you should tell apr-util."
501         Will says: "bs - I may choose the fastest - most efficient native
502                     dbm implementation, for shared proc caches, ssl session
503                     caching, etc, but that has nothing to do with maintaining
504                     a userlist via dbm, which has to remain readable between
505                     builds/machines, etc.  The use-multiple database schema
506                     for apr-util would let us do this with just apr, though."
507         Ian says:  "multi-dbm is in, but it still has ndbm support hardcoded
508                     is this still required? isn't ndbm supported via gdbm?"
509
510
511     * Integrate mod_dav.
512         Some additional items remaining:
513         - case_preserved_filename stuff
514             (use the new canonical name stuff?)
515         - find a new home for ap_text(_header)
516         - is it possible to remove the DAV: namespace stuff from util_xml?
517
518     * ap_core_translate() and its use by mod_mmap_static and mod_file_cache
519       are a bit wonky.  The function should probably be exposed as a utility 
520       function (such as ap_translate_url2fs() or ap_validate_fs_url() or 
521       something).  Another approach would be a new hook phase after
522       "translate" which would allow the module to munge what the
523       translation has decided to do.
524         Status: Greg +1 (volunteers), Ryan +1
525
526     * Explore use of a post-config hook for the code in http_main.c which
527       calls ap_fixup_virutal_hosts(), ap_fini_vhost_config(), and
528       ap_sort_hooks()  [to reduce the logic in main()]
529
530     * read the config tree just once, and process N times (as necessary)
531
532     * (possibly) use UUIDs in mod_unique_id and/or mod_usertrack
533
534     * (possibly) port the bug fix for PR 6942 (segv when LoadModule is put
535       into a VirtualHost container) to 2.0.
536
537     * shift stuff to mod_core.h
538
539     * callers of ap_run_create_request() should check the return value
540       for failure (Doug volunteers)
541
542     * Win32: Get Apache working on Windows 95/98. The following work
543         (at least) needs to be done:
544         - winnt MPM: Fix 95/98 code paths in the winnt MPM. There is some NT
545         specific code that is still not in NT only code paths
546         - IOL binds to APR sendfile, implemented with TransmitFile, which 
547         is not available on 95/98.
548         - Document warning that OSR2 is required (for Crypt functions, in
549         rand.c, at least.)  This could be resolved with an SSL library, or
550         randomization in APR itself.
551         - Bring the Win9xConHook.dll from 1.3 into 2.0 (no sense till it
552         actually works) and add in a splash of Win9x service code.
553
554     * In order to use a DSO version of mod_ssl we have to link with
555       -lssl and -lcrypto. A workaround is in place right now where the
556       entire EXTRA_LIBS macro is being appended to the objects list, but
557       this is a hack. We should either revamp the APACHE_CHECK_SSL_TOOLKIT
558       autoconf function or come up with some other autoconf checks to
559       search for libssl and libcrypto and properly add them to mod_ssl's
560       link flags.
561
562     * Fix the worker MPM to use POD to kill child processes instead
563       of ap_os_killpg, regardless of how they should die. (Ryan Bloom)
564
565 PRs that have been suspended forever waiting for someone to
566 put them into 'the next release':
567
568     * PR#76: general
569       missing call to "setlocale();"
570         Status: 
571
572     * PR#78: mod_include
573       Additional status for XBitHack directive
574         Status: 
575
576     * PR#362: mod_proxy
577       Mod_proxy doesn't allow change of error pages
578         Status: 
579
580     * PR#370: mod_env
581       Modified PATH environemnt variable is not passed, instead
582       system's is used
583         Status: 
584
585     * PR#440: mod_proxy
586       Proxy doesn't deliver documents if not connected
587         Status: 
588
589     * PR#534: mod_proxy
590       proxy converts ~name to %7Ename when name starts with a dot (.)
591         Status: 
592
593     * PR#537: mod_access
594       mod_access syntax allows hosts that should be restricted
595         Status: 
596
597     * PR#557: mod_auth-any
598       ~UserHome directories are not honored in absolute pathname
599       requests (.htaccess)
600         Status: 
601
602     * PR#612: mod_proxy
603       Proxy FTP Authentication Fails
604         Status: 
605
606     * PR#623: mod_include
607       A smarter "Last Modified" value for SSI documents (see PR number 600)
608         Status: 
609
610     * PR#628: config
611       Request of "Options SymLinksIfGroupMatch"
612         Status: 
613
614     * PR#700: mod_proxy
615       Proxy doesn't do links right for OpenVMS files through ftp:
616         Status: 
617
618     * PR#759: mod_imap
619       imap should read <MAP><AREA>*</MAP> too!
620         Status: 
621
622     * PR#793: general
623       RLimitCPU and RLimitMEM don't apply to all children like they should
624         Status: 
625
626     * PR#921: suexec
627       Uses cwd before filling it in, doesn't use syslog
628         Status: 
629
630     * PR#922: config
631       it is useful to allow specifiction that root-owned symlinks
632       should always be followed
633         Status: 
634
635     * PR#980: mod_proxy
636       Controlling Access to Remote Proxies would be nice...
637         Status: 
638
639     * PR#994: mod_proxy
640       Adding authentication "on the fly" through the proxy module
641         Status: 
642
643     * PR#1004: apache-api
644       request_config field in request_rec is moderately bogus
645         Status: 
646
647     * PR#1028: other
648       DoS attacks involving memory consumption
649         Status: 
650
651     * PR#1050: mod_log-any
652       Logging of virtual server to error_log as well
653         Status: 
654
655     * PR#1085: mod_proxy
656       ProxyRemote make a dead cycle.
657         Status: 
658
659     * PR#1117: mod_auth-any
660       Using NIS passwd.byname dbm files with AuthDBMUserFile
661         Status: 
662
663     * PR#1120: suexec
664       suexec does not parse arguments to #exec cmd
665         Status: 
666
667     * PR#1145: mod_include
668       Allow for Last-Modified: without resorting to XBitHack
669         Status: 
670
671     * PR#1158: apache-api
672       improvements to child spawning API
673         Status: 
674
675     * PR#1166: mod_proxy
676       ``nph-'' not honored (no buffering) for ProxyRemote mapping
677         Status: 
678
679     * PR#1176: mod_cgi
680       Apache cannot handle continuation line in headers
681         Status: 
682
683     * PR#1191: general
684       setlogin() is not called, causing problems with e.g. identd
685         Status: 
686
687     * PR#1204: general
688       regerror() exists, use it
689         Status: 
690
691     * PR#1233: apache-api
692       there is no way to keep per-connection per-module state
693         Status: 
694
695     * PR#1263: mod_autoexec
696       Add frame-safe anchor attribute to mod_autoindex links
697         Status: 
698
699     * PR#1268: suexec
700       CGI scripts running as Apache user: security (suexec etc.)
701         Status: 
702
703     * PR#1285: suexec
704       Error messages could be easier to spot in cgi.log file for suexec.c
705         Status: 
706
707     * PR#1287: mod_access
708       add allow,deny/deny,allow warning to mod_access
709         Status: 
710
711     * PR#1290: mod_proxy
712       Need to know "hit-rate" on proxy cache
713         Status: 
714
715     * PR#1358: mod_log-any
716       Selective url-encode of log fields (or maybe a pseudo
717       log_rewrite module?)
718         Status: 
719
720     * PR#1383: mod_headers
721       I make mod_headers to modify request headers as well as
722       response ones.
723         Status: 
724
725     * PR#1532: mod_proxy
726       Proxy transfer logging
727         Status: 
728
729     * PR#1547: mod_proxy
730       No HTTP_X_FORWARDED_FOR set...
731         Status: 
732
733     * PR#1567: mod_proxy
734       ProxyRemote proxy requests fail authentication by firewall
735         Status: 
736
737     * PR#1582: mod_rewrite
738       mod_rewrite forms REQUEST_URI different than mod_cgi does
739         Status: 
740
741     * PR#1677: mod_headers
742       mod_headers should allow mod_log_config-style formats in
743       header values
744         Status: 
745
746     * PR#1702: mod_proxy
747       mod_proxy to support persistent conns?
748         Status: 
749
750     * PR#1803: mod_include
751       patches to mod_include to allow for file tests
752         Status: 
753
754     * PR#1809: mod_auth-any
755       Suggestion for improving authentication modules and core source
756       code, problem with 401 and ErrorDocument
757         Status: 
758
759     * PR#1878: mod_proxy
760       listing of proxy cache content
761         Status: 
762
763     * PR#1905: suexec
764       Allow modules to set user:group for execution.
765         Status: 
766
767     * PR#2024: apache-api
768       adding auth_why to conn_rec
769         Status: 
770
771     * PR#2073: mod_log-any
772       pipelined connections are not logged correctly
773         Status: 
774
775     * PR#2074: mod_rewrite
776       mod_rewrite doesn't pass Proxy Throughput on internal subrequests
777         Status: 
778
779     * PR#2113: config
780       HTTP Server Rebuild Line Needs Changing for the better
781         Status: 
782
783     * PR#2138: mod_status
784       mod_status always displays 256 possible connection slots
785         Status: 
786
787     * PR#2221: documentation
788       Make online documentation search link back to my installation
789         Status: 
790
791     * PR#2284: general
792       Can not POST to ErrorDocument - Apache/1.3b6
793         Status: 
794
795     * PR#2314: mod_proxy
796       patterns in ProxyRemote
797         Status: 
798
799     * PR#2343: mod_status
800       Status module averages are for entire uptime
801         Status: 
802
803     * PR#2360: suexec
804       suexec for general access of user content?
805         Status: 
806
807     * PR#2396: general
808       Proposal for TimeZone directive
809         Status: 
810
811     * PR#2415: mod_info
812       /server-info doesn't check for the virtual host to list the info
813         Status: 
814
815     * PR#2421: config
816       problem specifying ndbm library for build ?with autoconfigure
817         Status: 
818
819     * PR#2431: general
820       A small addition to rotatelogs.c to improve program functionality.
821         Status: 
822
823     * PR#2446: config
824       AllowOverride FileInfo is too coarse
825         Status: 
826
827     * PR#2460: mod_cgi
828       TimeOut applies to output of CGI scripts
829         Status: 
830
831     * PR#2512: mod_access
832       &lt;IfDenied&gt; directive wanted
833         Status: 
834
835     * PR#2573: suexec
836       CGI's for general use still have to be run as another user
837       with suExec
838         Status: 
839
840     * PR#2648: general
841       Cache file names in Proxy module
842         Status: 
843
844     * PR#2760: config
845       [PATCH] User/Group for <Directory> and <Location> i.e. not only
846       in global and <Virtual>.
847         Status: 
848
849     * PR#2763: general
850       mailto tags and bundling bug report script
851         Status: 
852
853     * PR#2785: os-aix
854       Support for System Resource Controller
855         Status: 
856
857     * PR#2793: protocol
858       When will Apache support P3P? Any Plans?
859         Status: 
860
861     * PR#2873: config
862       Feedback/Comment on APACI
863         Status: 
864
865     * PR#2889: general
866       Inclusion of RPM spec file in CVS/distributions
867         Status: 
868
869     * PR#2906: general
870       Propose that Apache recommend $UNIQUE_ID for all "session id"
871       algorithms
872         Status: 
873
874     * PR#2907: config
875       suggestion: power up your Include directive :)
876         Status: 
877
878     * PR#3018: general
879       cannot limit some HTTP methods
880         Status: 
881
882     * PR#3143: apache-api
883       No module specific data hook for per-connection data
884         Status: 
885
886     * PR#3191: mod_negotiation
887       no way to set global quality-of-source (qs) coneg values
888       with multiviews
889         Status: 
890
891     * PR#3568: mod_proxy
892       Accessing URL through proxy server corrupts data.
893         Status: 
894
895     * PR#3605: mod_proxy
896       Some anonymous FTP URLs ask for authentication
897         Status: 
898
899     * PR#3677: general
900       New ErrorDocumentMatch directive
901         Status: 
902
903     * PR#4241: config
904       Need to be able to override shebang line to make CGI scripts
905       more portable.
906         Status: 
907
908     * PR#4244: config
909       "Files" and "FilesMatch" regexp does not recognize bang as
910       negation operator
911         Status: 
912
913     * PR#4448: mod_log-any
914       Please allow CGI env variables (QUERY_STRING, ...) to be logged
915       with %{}e
916         Status: 
917
918     * PR#4459: mod_include
919       Suggestion for better handling of Last-modified headers
920         Status: 
921
922     * PR#4490: mod_cgi
923       mod_cgi prevents handling of OPTIONS requests
924         Status: 
925
926     * PR#5713: os-windows
927       [PATCH] install as win32 service with domain account
928         Status: Cannot accept password-as-arg, we should prompt the
929                 user when -k install/-k config with a user argument.
930
931     * PR#5993: general
932       AllowOverride should have a 'CheckNone' and 'AllowNone' argument
933       instead of only 'None'
934         Status: 
935
936 Other bugs that need fixing:
937
938     * MaxRequestsPerChild measures connections, not requests.
939         Until someone has a better way, we'll probably just rename it
940         "MaxConnectionsPerChild".
941     
942     * Regex containers don't work in an intutive way
943         Status: No one has come up with an efficient way to fix this
944         behavior. Dean has suggested getting rid of regex containers
945         completely.
946         OtherBill suggests: We at least seem to agree on eliminating
947                             the <Container ~ foo> forms, and using only
948                             <ContainerMatch foo> semantics.
949
950     * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
951       sigwaiting thread. We need to work around this, perhaps unless
952       there is hope soon for a fixed glibc.
953
954     * orig_ct in the byterange/multipart handling may not be
955       needed. Apache 1.3 just never stashed "multipart" into
956       r->content_type. We should probably follow suit since the
957       byterange stuff doesn't want the rest of the code to see the
958       multipart content-type; the other code should still think it is
959       dealing with the <orig_ct> stuff.
960         Status: Greg volunteers to investigate (esp. since he was most 
961                 likely the one to break it :-)
962
963 Other features that need writing:
964
965     * Finish infrastructure in core for async MPMs
966         Status: post 2.0
967
968     * TODO in source -- just do an egrep on "TODO" and see what's there
969
970 Available Patches:
971
972    * Jon Travis's <jtravis@covalent.net> patch to deal with thread-safe
973      issues with inet_ntoa.  See message <20001201163220.A12827@covalent.net>
974         Status:  This is being set aside until the IPv6 work is finished
975                  so that we know exactly what is required.
976
977    * Martin Sojka <msojka@gmx.de>'s patch to add error reporting for failed 
978      htpasswd actions due to a full /tmp volume (other programs may have
979      similar problems?)
980         PR: 6475
981         Status:
982
983    * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
984      performance
985        Status: These were written for 1.3, and are awaiting a port to
986        2.0
987  
988    * Jim Winstead's <jimw@trainedmonkey.com> patch to add CookieDomain and 
989      other small mod_usertrack features
990
991    * Dan Rench's <drench@xnet.com> patch to add allow the errmsg and timefmt 
992      of SSI's to be modified in the config file.  Patch is available in 
993      PR6193
994
995 Open issues:
996
997    * Which MPMs will be included with Apache 2.0?