STATUS revision f38720f0bc7a117bc4070677a39574c6ea0c62fc
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinAPACHE 2.0 STATUS: -*-text-*-
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinLast modified at [$Date: 2002/02/01 13:16:00 $]
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.32 : in development
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin 2.0.31 : tagged January 30, 2002.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.30 : tagged January 8, 2002. not rolled.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.29 : tagged November 27, 2001. not rolled.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.28 : released November 13, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.27 : rolled November 6, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.26 : tagged October 16, 2001. not rolled.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.25 : rolled August 29, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.24 : rolled August 18, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.23 : rolled August 9, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.22 : rolled July 29, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.21 : rolled July 20, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.20 : rolled July 8, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.19 : rolled June 27, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.18 : rolled May 18, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.17 : rolled April 17, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.16 : rolled April 4, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.15 : rolled March 21, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0.14 : rolled March 7, 2001
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0a9 : released December 12, 2000
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0a8 : released November 20, 2000
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0a7 : released October 8, 2000
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0a6 : released August 18, 2000
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0a5 : released August 4, 2000
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0a4 : released June 7, 2000
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0a3 : released April 28, 2000
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0a2 : released March 31, 2000
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin 2.0a1 : released March 10, 2000
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinPlease consult the following STATUS files for information
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinon related projects:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinRELEASE SHOWSTOPPERS:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Runtime startup failures don't reliably set the exit status.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin For instance, try listening to port 80 and starting as non-root;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin server fails with make_sock and 'no listening sockets' errors
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin but exits with 0 status. Even with -DONE_PROCESS -DNO_DETACH.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Justin says: "Is this really a showstopper? Most people won't
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin be using -DNO_DETACH and will look at the error
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin logs anyway."
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Not a showstopper: trawick
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * ap_directory_walk skips some per-dir config merge functions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin if there is no "<Directory />" block in the configuration
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <m3itbdiijq.fsf@rdu163-40-092.nc.rr.com>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * That is very unlikely, merges are additive. Much more likely,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin the default SetOutputFilter default or merge is borked.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Unless it's the code that permits 'null' merges, per module.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Still, it's probably in SetOutputFilter's behavior.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Test suite failures:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin o worker is also failing some of the 'cgi' subtests
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Justin says: "Worker should be fine and passes httpd-test here."
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * If any request gets to the core handler, without a flag that this
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin r->filename was tested by dir/file_walk, we need to 500 at the very
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin end of the ap_process_request_internal() processing. This provides
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin authors of older modules better compatibility, while still improving
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin the security and robustness of 2.0.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Status: still need to decide where this goes, OtherBill comments...
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <065701c14526$495203b0$96c0b0d0@roweclan.net>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin we need to look at halting this in the 'default handler' case,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin and that implies pushing the 'handler election' into the request
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin internal processing phase from the run request phase.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * There is a bug in how we sort some hooks, at least the pre-config
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin hook. The first time we call the hooks, they are in the correct
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin order, but the second time, we don't sort them correctly. Currently,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin the modules/http/config.m4 file has been renamed to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin modules/http/config2.m4 to work around this problem, it should moved
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin back when this is fixed. rbb
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Justin says: "Is this really a showstopper? This has been here
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin forever. What's wrong? Does this have to do with
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin autoconf or m4?"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * The Add...Filter and Set...Filter directives do not allow the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin administrator to order filters, beyond the order of filename (mime)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin extensions. It isn't clear if Set...Filter(s) should be inserted
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin before or after the Add...Filter(s) which are ordered by sequence of
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin filename extensions. At minimum, some sort of +-[0-10] syntax seems
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin like the quickest fix for a 2.0 gold release.
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin Justin says: "Could we delay this for a point release or 2.1?"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Not a showstopper: justin, wrowe, trawick
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin * Convert all instances of the old apr_lock_t type to the new
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin types (once they are fully supported in APR).
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin Status: Aaron is working on converting INTRAPROCESS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin to apr_thread_mutex_t types. Full replacements for
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin LOCKALL and CROSS_PROCESS are not yet complete on all
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin platforms, and should only be used in MPMs like worker
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin with limited OS exposure.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * A binbuild installation picks up the right libraries when
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin running apachectl because we set the appropriate environment
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin variable, but ab, htpasswd, etc. don't know how to pick up apr,
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin apr-util, etc.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <20020116000226.GA15991@ebuilt.com>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Justin says: "You could always build all of the binaries
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin statically if you don't want to let libtool
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin handle it. At most, I don't consider this a
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin a release showstopper as it is a packaging issue."
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Status: Aaron volunteers: I'll commit a patch to allow all
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin the support binaries to be built statically against
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin libapr/libaprutil/etc and then enable it in binbuild.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinRELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * If the parent process dies, should the remaining child processes
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "gracefully" self-terminate.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <3C58232C.FE91F19F@Golux.Com>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin +1: Jim, Justin, Ken
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin -1: BrianP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Make some modifications to the scoreboard creation routines,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin prefer anonymous shared memory, and allow a configuration
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin directive to override the defaults.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <20020130080804.C16977@clove.org>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Status: Aaron volunteers
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Get perchild to work on platforms other than Linux. This
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin will require a portable mechanism to pass data and file/socket
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin descriptors between vhost child groups. An API was proposed
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin on dev@apr:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <20020111115006.K1529@clove.org>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Vote: Is a non-portable perchild going to hold up a GA release?
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin No: Aaron, Justin, trawick
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Modify the worker MPM so that it doesn't need to create and
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin destroy a pool for each request--possibly by adopting a
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin leader/follower model in which each worker owns a persistent
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin ptrans pool (like the prefork MPM) and the workers take
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin turns acting as listeners...this approach might also help
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin reduce context-switching
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * CGI single-byte reads
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin BrianP suggests that this is caused by the ap_scan_script_header_err()
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin routine, which will do single-byte reads until it finds the end
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin of the header, at which point it constructs a pipe-bucket (buffered)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin to read from.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Proposed solution in:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <3C36ADAF.60601@cnet.com>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Try to get libtool inter-library dependency code working on AIX.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <cm3n10lx555.fsf@rdu163-40-092.nc.rr.com>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Justin says: If we get it working on AIX, we can enable this
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin on all platforms and clean up our build system
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Handling of %2f in URIs. Currently both 1.3 and 2.0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin completely disallow %2f in the request URI path (see
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin ap_unescape_url() in util.c). It's permitted and passed
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin through in the query string, however. Roy says the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin original reason for disallowing it, from five years ago,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin was to protect CGI scripts that applied PATH_INFO to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin a filesystem location and which might be tricked by
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin ..%2f..%2f(...). We *should* allow path-info of the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Since we've revamped a lot of our processing of path
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin segments, it would be nice to allow this, or at least
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin allow it conditionally with a directive.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * FreeBSD, threads, and worker MPM. All seems to work fine
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin if you only have one worker process with many threads. Add
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin a second worker process and the accept lock seems to be
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin lost. This might be an APR issue with how it deals with
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin the child_init hook (i.e. the fcntl lock needs to be resynced).
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin More examination and analysis is required.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Status: This has also been reported on Cygwin.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <3C2CC514.8EF3BED1@wapme-systems.de> (cygnus)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Justin says: So, FreeBSD-CURRENT and Cywin have the same
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin problem. Yum. If another platform has this
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin with worker, this becomes a showstopper.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Aaron says: I spent some time disecting this and have come to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin the conclusion that it is not a problem in the worker MPM
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin (or at least, it is not isolated to a problem in worker).
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin I'll list some of the problems I'm seeing in case someone
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin else wants to pick up where I've left off:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin - Delivery of just about any signal to one of the child
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin processes will send it into an infinite loop as well.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin - Even though the parent is spinning out of control,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin at first the child or children will appear to work
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin properly. At times it is possible to get it into a state,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin however, where a request will hang until another concurrent
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin request "kicks" the first, at which point the second will
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin hang. My theory is that this has to do with the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin pthread_cond_*() implementation in FreeBSD, but it's still
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin possible that it is in APR.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Justin adds: Oh, FreeBSD threads are implemented entirely with
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin select()/poll()/longjmp(). Welcome to the nightmare.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin So, that means a ktrace output also has the thread
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin scheduling internals in it (since it is all the same to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin the kernel). Which makes it hard to distinguish between
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin our select() calls and their select() calls.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin *bangs head on wall repeatedly* But, some of the libc_r
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin files have a DBG_MSG #define. This is moderately helpful
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin when used with -DNO_DETACH. The kernel scheduler isn't
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin waking up the threads on a select(). Yum. And, I bet
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin those decrementing select calls have to do with the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin scheduler. Time to brush up on our OS fundamentals.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * There is increasing demand from module writers for an API
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin that will allow them to control the server � la apachectl.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Reasons include sole-function servers that need to die if
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin an external dependency (e.g., a database) fails, et cetera.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Perhaps something in the (ever more abused) scoreboard?
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin rbb: I don't believe the scoreboard is the correct mechanism
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin for this. We already have a pipe that goes between parent
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin and child for graceful shutdown events, along with an API that
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin can be used to send a message down that pipe. In threaded MPMs,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin it is easy enough to make that one pipe be used for graceful
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin and graceless events, and it is also easy to open that pipe
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin to both parent and child for writing. Then we just need to figure
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin out how to do graceless on non-threaded MPMs.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * revamp the input filter behavior, per discussions since
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin February (and especially at the hackathon last
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin April). Specifically, ap_get_brigade will return a brigade with
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin *up to* a specific number of bytes, or a "line" of data. The
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin read may be blocking or nonblocking. ap_getline() will be
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin refactored into apr_brigade_getline(), and then DECHUNK can use
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin f->next (ap_getline will always read "top of input stack"). Also
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin fix the bug where request body content will end up closing the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin connection (buggering up persistent conns).
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Status: Justin is working on this as fast as he can.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin The core input filters, HTTP-related filters, mod_ssl, and
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin mod_proxy are switched to the new logic.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin However, ap_getline() still needs to be refactored out. But,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin there's a problem there: ap_getline() peeks ahead for MIME
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin continuation (first character on line is space or \t) and
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin stores unused data in core_request_config which violates the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin abstraction. That's cheating. So, we may not be able to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin implement this without setting some data aside (yuck!).
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin I believe this is OtherBill's main complaint with the current
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin filtering.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin AIUI (correct me if I'm wrong!), OtherBill believes we
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin should have a pushback option so that we can return unread
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin data - this would solve this case. However, my question to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin him is how do we handle stuff like mod_ssl - we can't "unread"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin data. So, do we have two brigades for each filter? An in
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin brigade and a returned brigade? That seems messy. To
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin everyone else, can we refactor ap_getline() without pushback
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin - socket bucket and core input filter changes. see end of
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin message ID (Feb 27): <20010227075326.S2297@lyra.org>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin - fix up ap_get_brigade() semantics, fix bug in DECHUNK /
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin ap_getline. many messages (plus their threads) (Apr/May):
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <20010402101207.J27539@lyra.org>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <3AF7F921.D2EEC41A@algroup.co.uk>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <20010508190029.E18404@lyra.org>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin - further work with combining/tweaking the builtin filters:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <20010509115445.D1374@lyra.org>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin - thoughts on filter modes:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <021b01c14dee$09782af0$93c0b0d0@roweclan.net>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin - proposal for getline rewrite:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <20011231104019.GD3904@ebuilt.com>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin - patch for getline rewrite:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <20020122072605.GF28051@ebuilt.com>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin - Change ap_get_brigade prototype:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <20020120115136.GI17601@ebuilt.com>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Allow the DocumentRoot directive within <Location > scopes? This
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin allows the beloved (crusty) Alias /foo/ /somepath/foo/ followed
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin by a <Directory /somepath/foo> to become simply
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin <Location /foo/> DocumentRoot /somefile/foo (IMHO a bit more legible
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin and in-your-face.) DocumentRoot unset would be accepted [and would
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin not permit content to be served, only virtual resources such as
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin server-info or server-status.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin This proposed change would _not_ depricate Alias.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Win32: Rotatelogs sometimes is not terminated when Apache
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin goes down hard. FirstBill was looking at possibly tracking the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin child's-child processes in the parent process.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin OtherBill asks, wasn't this fixed?
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin OtherBill asks again, what is the status?
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Win32: Add a simple hold console open patch (wait for close or
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin the ESC key, with a nice message) if the server died a bad
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin death (non-zero exit code) in console mode.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Resolution: bring forward same ugly hacks from 1.3.13-.20
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Port of mod_ssl to Apache 2.0:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin The current porting state is summarized in modules/ssl/README. The
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin remaining work includes:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin (1) stablizing/optimizing the SSL filter logic
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin (2) Enabling the various SSL caching mechanisms (shmcb, shmht)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin (3) Enabling SSL extentions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin (4) Trying to seperate the https filter logic from mod_ssl -
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin This is to facilitate other modules that wish to use the https
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin filter or the mod_ssl logic or both as required.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Justin: mod_ssl filter logic is redone, so that should be fine.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Madhu has submitted a patch for SSL caching - however, I
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin am -0 on that patch as I *think* we could implement the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin shared memory another way that is much cleaner (i.e.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin treat shmem directly as a dbm via APR routines). Justin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin also thinks that the https filter logic may be sufficiently
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin decoupled now, but isn't really sure.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Performance & Debug: Eliminate most (and perhaps all) of the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin malloc/free calls in the bucket brigade code. Need some
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin light weight memory management functions that allow freeing
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin memory (putting it back into a memory pool) when it is no
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin longer needed. Enabling simple debugging features like guard
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin bands, double free detection, etc. would be cool but certainly
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin not a hard requirement.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Status: Cliff started to implement this using SMS as has
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin been discussed at length for months, but since
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin SMS is not being used anywhere else in the server,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin several people expressed the opinion that we should
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin get rid of it entirely, meaning that the buckets
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin need their own memory management (free list) functions.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Cliff will implement that this weekend so we at least
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin have something to look at/compare with.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Eliminate unnecessary creation of pipes in mod_cgid
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * the autoconf setup should be fixed to default to using the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "Apache" layout from config.layout, and each variable settable
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin in a layout should be overridable on the command line. Plus,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin what we do right now just doesn't seem to fully fit into how autoconf
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin works, eg. AC_PREFIX_DEFAULT issues.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Message-ID: <Pine.BSF.4.20.0104031557420.20876-100000@alive.znep.com>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Combine log_child and piped_log_spawn. Clean up http_log.c.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Common logging API.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Document mod_file_cache.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Platforms that do not support fork (primarily Win32 and AS/400)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Architect start-up code that avoids initializing all the modules
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin in the parent process on platforms that do not support fork.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Win32: Migrate the MPM over to use APR thread/process calls. This
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin would eliminate some code in the Win32 branch that essentially
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin duplicates what is in APR.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * There are still a number of places in the code where we are
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin losing error status (i.e. throwing away the error returned by a
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin system call and replacing it with a generic error code)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Mass vhosting version of suEXEC.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * All DBMs suffer from confusion in support/dbmmanage (perl script) since
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin the dbmmanage employs the first-matched dbm format. This is not
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin necessarily the library that Apache was built with. Aught to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin rewrite dbmmanage upon installation to bin/ with the proper library
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin for predictable mod_auth_dbm administration.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Questions; htdbm exists, time to kill dbmmanage, or does it remain
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin useful as a perl dbm management example? If we keep it,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin do we address the issue above?
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * use apu_dbm in mod_auth_dbm
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Status: Greg +1 (low-priority volunteer)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Justin says: "Seems like this is already there, so should we just
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin remove the other DBM code in that file? If you want
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin to use gdbm, or dbm, etc, you should tell apr-util."
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Will says: "bs - I may choose the fastest - most efficient native
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin dbm implementation, for shared proc caches, ssl session
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin caching, etc, but that has nothing to do with maintaining
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin a userlist via dbm, which has to remain readable between
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin builds/machines, etc. The use-multiple database schema
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin for apr-util would let us do this with just apr, though."
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Ian says: "multi-dbm is in, but it still has ndbm support hardcoded
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin is this still required? isn't ndbm supported via gdbm?"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Integrate mod_dav.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin Some additional items remaining:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin - case_preserved_filename stuff
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin (use the new canonical name stuff?)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin - find a new home for ap_text(_header)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin - is it possible to remove the DAV: namespace stuff from util_xml?
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * ap_core_translate() and its use by mod_mmap_static and mod_file_cache
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin are a bit wonky. The function should probably be exposed as a utility
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin function (such as ap_translate_url2fs() or ap_validate_fs_url() or
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin something). Another approach would be a new hook phase after
* Explore use of a post-config hook for the code in http_main.c which
* (possibly) use UUIDs in mod_unique_id and/or mod_usertrack
* shift stuff to mod_core.h
rand.c, at least.) This could be resolved with an SSL library, or
- Bring the Win9xConHook.dll from 1.3 into 2.0 (no sense till it
Using NIS passwd.byname dbm files with AuthDBMUserFile
setlogin() is not called, causing problems with e.g. identd
add allow,deny/deny,allow warning to mod_access
A small addition to rotatelogs.c to improve program functionality.
Feedback/Comment on APACI
Inclusion of RPM spec file in CVS/distributions
* orig_ct in the byterange/multipart handling may not be