1 APACHE 2.0 STATUS: -*-text-*-
2 Last modified at [$Date: 2002/04/05 17:22:19 $]
6 2.0.34 : tagged March 26, 2002.
7 2.0.33 : tagged March 6, 2002. not released.
8 2.0.32 : released Feburary 16, 2002 as beta.
9 2.0.31 : rolled Feburary 1, 2002. not released.
10 2.0.30 : tagged January 8, 2002. not rolled.
11 2.0.29 : tagged November 27, 2001. not rolled.
12 2.0.28 : released November 13, 2001 as beta.
13 2.0.27 : rolled November 6, 2001
14 2.0.26 : tagged October 16, 2001. not rolled.
15 2.0.25 : rolled August 29, 2001
16 2.0.24 : rolled August 18, 2001
17 2.0.23 : rolled August 9, 2001
18 2.0.22 : rolled July 29, 2001
19 2.0.21 : rolled July 20, 2001
20 2.0.20 : rolled July 8, 2001
21 2.0.19 : rolled June 27, 2001
22 2.0.18 : rolled May 18, 2001
23 2.0.17 : rolled April 17, 2001
24 2.0.16 : rolled April 4, 2001
25 2.0.15 : rolled March 21, 2001
26 2.0.14 : rolled March 7, 2001
27 2.0a9 : released December 12, 2000
28 2.0a8 : released November 20, 2000
29 2.0a7 : released October 8, 2000
30 2.0a6 : released August 18, 2000
31 2.0a5 : released August 4, 2000
32 2.0a4 : released June 7, 2000
33 2.0a3 : released April 28, 2000
34 2.0a2 : released March 31, 2000
35 2.0a1 : released March 10, 2000
37 Please consult the following STATUS files for information
41 * srclib/apr-util/STATUS
45 CURRENT RELEASE NOTES:
47 * 34 status: Let's get all API changes and showstoppers in this one.
50 FINAL RELEASE SHOWSTOPPERS:
52 * We do not properly substitute the prefix-variables in the configuration
53 scripts or generated-configs. (i.e. if sysconfdir is etc,
54 httpd-std.conf points to conf.)
55 Aaron says: This is not a showstopper, these problems have existed
56 for as long as I can remember. It would be nice to fix
57 them but they are not new.
58 Not a showstopper: Jeff, Aaron, BillS, gregames, Jim
62 * Should we always build [support*] binaries statically unless otherwise
64 Message-ID: <20020129210006.B23512@Lithium.MeepZor.Com>
66 +1: Ken, *wrowe [they are PITAs on OSX]
69 * If the parent process dies, should the remaining child processes
70 "gracefully" self-terminate. Or maybe we should make it a runtime
71 option, or have a concept of 2 parent processes (one being a
73 See: Message-ID: <3C58232C.FE91F19F@Golux.Com>
75 Self-destruct: Ken, Martin
76 Not self-destruct: BrianP, Ian, Cliff, BillS
77 Make it runtime configurable: Aaron, Jim, Justin
78 Have 2 parents: +1: Jim
79 -1: Justin, wrowe [for 2.0]
80 +0: Martin (while standing by, could it do
83 * Make the worker MPM the default MPM for threaded Unix boxes.
84 +1: Justin, Ian, Cliff
85 -0: Aaron (premature decision, needs more discussion), Lars
87 RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
88 * ap_cache_hex2msec() and ap_cache_msec2hex() are completely
89 hosed. They do not handle apr_time_t (64 bit ints) properly.
91 * If any request gets through ap_process_request_internal() and is
92 scheduled to be served by the core handler, without a flag that this
93 r->filename was tested by dir/file_walk, we need to 500 at the very
94 end of the ap_process_request_internal() processing so sub_req-esters
95 know this request cannot be run. This provides authors of older
96 modules better compatibility, while still improving the security and
99 Status: still need to decide where this goes, OtherBill comments...
100 Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net>
101 [Deleted comments regarding the ap_run_handler phase, as irrelevant
102 as BillS points out that "common case will be caught in
103 default_handler already (with the r->finfo.filetype == 0 check)"
104 and the issue is detecting this -before- we try to run the req.]
106 gregames says: can this happen somehow without a broken module
107 being involved? If not, why waste cycles trying to defend against
108 potential broken modules? It seems futile.
109 wrowe counters: no, it shouldn't happen unless the module is broken.
110 But the right answer is to fail the request up-front in dir/file
111 walk if the path was entirely invalid; and we can't do that either
112 or we break modules that are unwilling to hook map_to_storage.
114 * Rewrite core_output_filter. It is nearly impossible to support
115 it with predictable results as it is implemented now.
117 * Convert all instances of the old apr_lock_t type to the new
119 Status: Aaron has converted all but the perchild MPM to
120 use the new lock API. Since perchild has been put
121 on the back burner, this is no longer a showstopper.
122 Aaron will patch perchild as soon as it becomes
125 * With AP_MODE_EXHAUSTIVE in the core, it is finally clear to me
126 how the Perchild MPM should be re-written. It hasn't worked
127 correctly since filters were added because it wasn't possible to
128 get the content that had already been written and the socket at
129 the same time. This mode lets us do that, so the MPM can be
132 * htpasswd blindly processes the file you give it, and does no
133 sanity checking before totally corrupting whatever file it was
134 you thought you had. It should check the input file and bail
135 if it finds non-comment lines that do not contain exactly 1
137 Message-ID: <20020217150457.A31632@clove.org>
139 * Can a static httpd be built reliably?
140 Message-ID: <20020207142751.T31582@clove.org>
142 * [Ken] Test suite failures:
143 o worker is also failing some of the 'cgi' subtests
144 (see <URL:http://Source-Zone.Org/Apache/regression/>):
145 Justin says: "Worker should be fine and passes httpd-test here.
146 If you can provide evidence that it can be reproduced
147 outside of httpd-test, then it's a showstopper. I
148 think it's a perl or a httpd-test problem."
149 Not a showstopper: Justin
151 * Usage of APR_BRIGADE_NORMALIZE in core_input_filter should be
153 Message-ID: <Pine.LNX.4.33.0201202232430.318-100000@deepthought.cs.virginia.edu>
155 * There is a bug in how we sort some hooks, at least the pre-config
156 hook. The first time we call the hooks, they are in the correct
157 order, but the second time, we don't sort them correctly. Currently,
158 the modules/http/config.m4 file has been renamed to
159 modules/http/config2.m4 to work around this problem, it should moved
160 back when this is fixed. rbb
161 Justin says: "Is this really a showstopper? This has been here
162 forever. What's wrong? Does this have to do with
164 Not a showstopper: Justin, BrianP, trawick, gregames
166 * The Add...Filter and Set...Filter directives do not allow the
167 administrator to order filters, beyond the order of filename (mime)
168 extensions. It isn't clear if Set...Filter(s) should be inserted
169 before or after the Add...Filter(s) which are ordered by sequence of
170 filename extensions. At minimum, some sort of +-[0-10] syntax seems
171 like the quickest fix for a 2.0 gold release.
172 Justin says: "Could we delay this for a point release or 2.1?"
173 Not a showstopper: justin, wrowe, trawick, stoddard, Jim, Ian, Aaron,
176 * Get perchild to work on platforms other than Linux. This
177 will require a portable mechanism to pass data and file/socket
178 descriptors between vhost child groups. An API was proposed
180 Message-ID: <20020111115006.K1529@clove.org>
182 * Try to get libtool inter-library dependency code working on AIX.
183 Message-ID: <cm3n10lx555.fsf@rdu163-40-092.nc.rr.com>
185 Justin says: If we get it working on AIX, we can enable this
186 on all platforms and clean up our build system
188 Jeff says: I thought I tested a patch for you sometime in
189 January that you were going to commit within a few
192 * Handling of %2f in URIs. Currently both 1.3 and 2.0
193 completely disallow %2f in the request URI path (see
194 ap_unescape_url() in util.c). It's permitted and passed
195 through in the query string, however. Roy says the
196 original reason for disallowing it, from five years ago,
197 was to protect CGI scripts that applied PATH_INFO to
198 a filesystem location and which might be tricked by
199 ..%2f..%2f(...). We *should* allow path-info of the
200 form 'http://foo.com/index.cgi/path/to/path%2finfo'.
201 Since we've revamped a lot of our processing of path
202 segments, it would be nice to allow this, or at least
203 allow it conditionally with a directive.
205 * FreeBSD, threads, and worker MPM. All seems to work fine
206 if you only have one worker process with many threads. Add
207 a second worker process and the accept lock seems to be
208 lost. This might be an APR issue with how it deals with
209 the child_init hook (i.e. the fcntl lock needs to be resynced).
210 More examination and analysis is required.
211 Status: This has also been reported on Cygwin.
212 Message-ID: <3C2CC514.8EF3BED1@wapme-systems.de> (cygnus)
214 Justin says: So, FreeBSD-CURRENT and Cywin have the same
215 problem. Yum. If another platform has this
216 with worker, this becomes a showstopper.
217 Aaron says: I spent some time disecting this and have come to
218 the conclusion that it is not a problem in the worker MPM
219 (or at least, it is not isolated to a problem in worker).
220 I'll list some of the problems I'm seeing in case someone
221 else wants to pick up where I've left off:
222 - Delivery of just about any signal to one of the child
223 processes will send it into an infinite loop as well.
224 - Even though the parent is spinning out of control,
225 at first the child or children will appear to work
226 properly. At times it is possible to get it into a state,
227 however, where a request will hang until another concurrent
228 request "kicks" the first, at which point the second will
229 hang. My theory is that this has to do with the
230 pthread_cond_*() implementation in FreeBSD, but it's still
231 possible that it is in APR.
233 Justin adds: Oh, FreeBSD threads are implemented entirely with
234 select()/poll()/longjmp(). Welcome to the nightmare.
235 So, that means a ktrace output also has the thread
236 scheduling internals in it (since it is all the same to
237 the kernel). Which makes it hard to distinguish between
238 our select() calls and their select() calls.
239 *bangs head on wall repeatedly* But, some of the libc_r
240 files have a DBG_MSG #define. This is moderately helpful
241 when used with -DNO_DETACH. The kernel scheduler isn't
242 waking up the threads on a select(). Yum. And, I bet
243 those decrementing select calls have to do with the
244 scheduler. Time to brush up on our OS fundamentals.
246 * There is increasing demand from module writers for an API
247 that will allow them to control the server à la apachectl.
248 Reasons include sole-function servers that need to die if
249 an external dependency (e.g., a database) fails, et cetera.
250 Perhaps something in the (ever more abused) scoreboard?
251 rbb: I don't believe the scoreboard is the correct mechanism
252 for this. We already have a pipe that goes between parent
253 and child for graceful shutdown events, along with an API that
254 can be used to send a message down that pipe. In threaded MPMs,
255 it is easy enough to make that one pipe be used for graceful
256 and graceless events, and it is also easy to open that pipe
257 to both parent and child for writing. Then we just need to
258 figure out how to do graceless on non-threaded MPMs.
260 * Allow the DocumentRoot directive within <Location > scopes? This
261 allows the beloved (crusty) Alias /foo/ /somepath/foo/ followed
262 by a <Directory /somepath/foo> to become simply
263 <Location /foo/> DocumentRoot /somefile/foo (IMHO a bit more legible
264 and in-your-face.) DocumentRoot unset would be accepted [and would
265 not permit content to be served, only virtual resources such as
266 server-info or server-status.
267 This proposed change would _not_ depricate Alias.
269 * Win32: Rotatelogs sometimes is not terminated when Apache
270 goes down hard. FirstBill was looking at possibly tracking the
271 child's-child processes in the parent process.
272 OtherBill asks, wasn't this fixed?
273 stoddard: Not fixed. Shared scoreboard might offer a good
274 way for the parent to keep track of 'other child' processes
275 and whack them if the child goes down.
276 Other thoughts on walking the process chain using the NT kernel
277 have also been proposed on APR.
279 * Win32: Add a simple hold console open patch (wait for close or
280 the ESC key, with a nice message) if the server died a bad
281 death (non-zero exit code) in console mode.
282 Resolution: bring forward same ugly hacks from 1.3.13-.20
284 * Port of mod_ssl to Apache 2.0:
286 The current porting state is summarized in modules/ssl/README. The
287 remaining work includes:
288 (1) stablizing/optimizing the SSL filter logic
289 (2) Enabling SSL extentions
290 (3) Trying to seperate the https filter logic from mod_ssl -
291 This is to facilitate other modules that wish to use the https
292 filter or the mod_ssl logic or both as required.
294 * Eliminate unnecessary creation of pipes in mod_cgid
296 * Combine log_child and piped_log_spawn. Clean up http_log.c.
299 * Document mod_file_cache.
301 * Platforms that do not support fork (primarily Win32 and AS/400)
302 Architect start-up code that avoids initializing all the modules
303 in the parent process on platforms that do not support fork.
305 * Win32: Migrate the MPM over to use APR thread/process calls. This
306 would eliminate some code in the Win32 branch that essentially
307 duplicates what is in APR.
309 * There are still a number of places in the code where we are
310 losing error status (i.e. throwing away the error returned by a
311 system call and replacing it with a generic error code)
313 * Mass vhosting version of suEXEC.
315 * All DBMs suffer from confusion in support/dbmmanage (perl script) since
316 the dbmmanage employs the first-matched dbm format. This is not
317 necessarily the library that Apache was built with. Aught to
318 rewrite dbmmanage upon installation to bin/ with the proper library
319 for predictable mod_auth_dbm administration.
320 Questions; htdbm exists, time to kill dbmmanage, or does it remain
321 useful as a perl dbm management example? If we keep it,
322 do we address the issue above?
325 Some additional items remaining:
326 - case_preserved_filename stuff
327 (use the new canonical name stuff?)
328 - find a new home for ap_text(_header)
329 - is it possible to remove the DAV: namespace stuff from util_xml?
331 * ap_core_translate() and its use by mod_mmap_static and mod_file_cache
332 are a bit wonky. The function should probably be exposed as a utility
333 function (such as ap_translate_url2fs() or ap_validate_fs_url() or
334 something). Another approach would be a new hook phase after
335 "translate" which would allow the module to munge what the
336 translation has decided to do.
337 Status: Greg +1 (volunteers), Ryan +1
339 * Explore use of a post-config hook for the code in http_main.c which
340 calls ap_fixup_virutal_hosts(), ap_fini_vhost_config(), and
341 ap_sort_hooks() [to reduce the logic in main()]
343 * read the config tree just once, and process N times (as necessary)
345 * (possibly) use UUIDs in mod_unique_id and/or mod_usertrack
347 * (possibly) port the bug fix for PR 6942 (segv when LoadModule is put
348 into a VirtualHost container) to 2.0.
350 * shift stuff to mod_core.h
352 * callers of ap_run_create_request() should check the return value
353 for failure (Doug volunteers)
355 * Win32: Get Apache working on Windows 95/98. The following work
356 (at least) needs to be done:
357 - Document warning that OSR2 is required (for Crypt functions, in
358 rand.c, at least.) This could be resolved with an SSL library, or
359 randomization in APR itself.
360 - Bring the Win9xConHook.dll from 1.3 into 2.0 (no sense till it
361 actually works) and add in a splash of Win9x service code.
363 * In order to use a DSO version of mod_ssl we have to link with
364 -lssl and -lcrypto. A workaround is in place right now where the
365 entire EXTRA_LIBS macro is being appended to the objects list, but
366 this is a hack. We should either revamp the APACHE_CHECK_SSL_TOOLKIT
367 autoconf function or come up with some other autoconf checks to
368 search for libssl and libcrypto and properly add them to mod_ssl's
371 * Fix the worker MPM to use POD to kill child processes instead
372 of ap_os_killpg, regardless of how they should die. (Ryan Bloom)
374 * mod_cache: handle cache_control: no_cache "field_name" to enable
375 cacheing the response w/o header "field_name"
376 See RFC2616 section 14.9.1
378 * Scoreboard structures could be changed in the future such that
379 proper alignment is not maintained, leading to segfaults on
380 some systems. Cliff posted a patch to deal with this issue but
381 later recanted. See this message to dev@apr.apache.org:
382 Message-ID: <Pine.LNX.4.44.0203011354090.16457-200000@deepthought
385 PRs that have been suspended forever waiting for someone to
386 put them into 'the next release':
389 missing call to "setlocale();"
393 Additional status for XBitHack directive
397 Mod_proxy doesn't allow change of error pages
401 Modified PATH environemnt variable is not passed, instead
406 Proxy doesn't deliver documents if not connected
410 proxy converts ~name to %7Ename when name starts with a dot (.)
414 mod_access syntax allows hosts that should be restricted
417 * PR#557: mod_auth-any
418 ~UserHome directories are not honored in absolute pathname
423 Proxy FTP Authentication Fails
426 * PR#623: mod_include
427 A smarter "Last Modified" value for SSI documents (see PR number 600)
431 Request of "Options SymLinksIfGroupMatch"
435 Proxy doesn't do links right for OpenVMS files through ftp:
439 imap should read <MAP><AREA>*</MAP> too!
443 RLimitCPU and RLimitMEM don't apply to all children like they should
447 Uses cwd before filling it in, doesn't use syslog
451 it is useful to allow specifiction that root-owned symlinks
452 should always be followed
456 Controlling Access to Remote Proxies would be nice...
460 Adding authentication "on the fly" through the proxy module
463 * PR#1004: apache-api
464 request_config field in request_rec is moderately bogus
468 DoS attacks involving memory consumption
471 * PR#1050: mod_log-any
472 Logging of virtual server to error_log as well
476 ProxyRemote make a dead cycle.
479 * PR#1117: mod_auth-any
480 Using NIS passwd.byname dbm files with AuthDBMUserFile
484 suexec does not parse arguments to #exec cmd
487 * PR#1145: mod_include
488 Allow for Last-Modified: without resorting to XBitHack
491 * PR#1158: apache-api
492 improvements to child spawning API
496 ``nph-'' not honored (no buffering) for ProxyRemote mapping
500 Apache cannot handle continuation line in headers
504 setlogin() is not called, causing problems with e.g. identd
508 regerror() exists, use it
511 * PR#1233: apache-api
512 there is no way to keep per-connection per-module state
515 * PR#1263: mod_autoexec
516 Add frame-safe anchor attribute to mod_autoindex links
520 CGI scripts running as Apache user: security (suexec etc.)
524 Error messages could be easier to spot in cgi.log file for suexec.c
527 * PR#1287: mod_access
528 add allow,deny/deny,allow warning to mod_access
532 Need to know "hit-rate" on proxy cache
535 * PR#1358: mod_log-any
536 Selective url-encode of log fields (or maybe a pseudo
540 * PR#1383: mod_headers
541 I make mod_headers to modify request headers as well as
546 Proxy transfer logging
550 No HTTP_X_FORWARDED_FOR set...
554 ProxyRemote proxy requests fail authentication by firewall
557 * PR#1582: mod_rewrite
558 mod_rewrite forms REQUEST_URI different than mod_cgi does
561 * PR#1677: mod_headers
562 mod_headers should allow mod_log_config-style formats in
567 mod_proxy to support persistent conns?
570 * PR#1803: mod_include
571 patches to mod_include to allow for file tests
574 * PR#1809: mod_auth-any
575 Suggestion for improving authentication modules and core source
576 code, problem with 401 and ErrorDocument
580 listing of proxy cache content
584 Allow modules to set user:group for execution.
587 * PR#2024: apache-api
588 adding auth_why to conn_rec
591 * PR#2073: mod_log-any
592 pipelined connections are not logged correctly
595 * PR#2074: mod_rewrite
596 mod_rewrite doesn't pass Proxy Throughput on internal subrequests
600 HTTP Server Rebuild Line Needs Changing for the better
603 * PR#2138: mod_status
604 mod_status always displays 256 possible connection slots
607 * PR#2221: documentation
608 Make online documentation search link back to my installation
612 Can not POST to ErrorDocument - Apache/1.3b6
616 patterns in ProxyRemote
619 * PR#2343: mod_status
620 Status module averages are for entire uptime
624 suexec for general access of user content?
628 Proposal for TimeZone directive
632 /server-info doesn't check for the virtual host to list the info
636 problem specifying ndbm library for build ?with autoconfigure
640 A small addition to rotatelogs.c to improve program functionality.
644 AllowOverride FileInfo is too coarse
648 TimeOut applies to output of CGI scripts
651 * PR#2512: mod_access
652 <IfDenied> directive wanted
656 CGI's for general use still have to be run as another user
661 Cache file names in Proxy module
665 [PATCH] User/Group for <Directory> and <Location> i.e. not only
666 in global and <Virtual>.
670 mailto tags and bundling bug report script
674 Support for System Resource Controller
678 When will Apache support P3P? Any Plans?
682 Feedback/Comment on APACI
686 Inclusion of RPM spec file in CVS/distributions
690 Propose that Apache recommend $UNIQUE_ID for all "session id"
695 suggestion: power up your Include directive :)
699 cannot limit some HTTP methods
702 * PR#3143: apache-api
703 No module specific data hook for per-connection data
706 * PR#3191: mod_negotiation
707 no way to set global quality-of-source (qs) coneg values
712 Accessing URL through proxy server corrupts data.
716 Some anonymous FTP URLs ask for authentication
720 New ErrorDocumentMatch directive
724 Need to be able to override shebang line to make CGI scripts
729 "Files" and "FilesMatch" regexp does not recognize bang as
733 * PR#4448: mod_log-any
734 Please allow CGI env variables (QUERY_STRING, ...) to be logged
738 * PR#4459: mod_include
739 Suggestion for better handling of Last-modified headers
743 mod_cgi prevents handling of OPTIONS requests
746 * PR#5713: os-windows
747 [PATCH] install as win32 service with domain account
748 Status: Cannot accept password-as-arg, we should prompt the
749 user when -k install/-k config with a user argument.
752 AllowOverride should have a 'CheckNone' and 'AllowNone' argument
753 instead of only 'None'
756 Other bugs that need fixing:
758 * MaxRequestsPerChild measures connections, not requests.
759 Until someone has a better way, we'll probably just rename it
760 "MaxConnectionsPerChild".
762 * Regex containers don't work in an intutive way
763 Status: No one has come up with an efficient way to fix this
764 behavior. Dean has suggested getting rid of regex containers
766 OtherBill suggests: We at least seem to agree on eliminating
767 the <Container ~ foo> forms, and using only
768 <ContainerMatch foo> semantics.
770 * SIGSEGV on Linux (glibc 2.1.2) isn't caught properly by a
771 sigwaiting thread. We need to work around this, perhaps unless
772 there is hope soon for a fixed glibc.
774 * orig_ct in the byterange/multipart handling may not be
775 needed. Apache 1.3 just never stashed "multipart" into
776 r->content_type. We should probably follow suit since the
777 byterange stuff doesn't want the rest of the code to see the
778 multipart content-type; the other code should still think it is
779 dealing with the <orig_ct> stuff.
780 Status: Greg volunteers to investigate (esp. since he was most
781 likely the one to break it :-)
783 Other features that need writing:
785 * Finish infrastructure in core for async MPMs
788 * TODO in source -- just do an egrep on "TODO" and see what's there
792 * Jon Travis's <jtravis@covalent.net> patch to deal with thread-safe
793 issues with inet_ntoa. See message <20001201163220.A12827@covalent.net>
794 Status: This is being set aside until the IPv6 work is finished
795 so that we know exactly what is required.
797 * Martin Sojka <msojka@gmx.de>'s patch to add error reporting for failed
798 htpasswd actions due to a full /tmp volume (other programs may have
803 * Mike Abbott's <mja@trudge.engr.sgi.com> patches to improve
805 Status: These were written for 1.3, and are awaiting a port to
808 * Jim Winstead's <jimw@trainedmonkey.com> patch to add CookieDomain and
809 other small mod_usertrack features
811 * Dan Rench's <drench@xnet.com> patch to add allow the errmsg and timefmt
812 of SSI's to be modified in the config file. Patch is available in
817 * Which MPMs will be included with Apache 2.0?