[STATUS] (httpd-2.1) Wed Jan 21 23:45:14 EST 2004
APACHE 2.1 STATUS: -*-text-*- Last modified at [$Date: 2004/01/04 15:08:00 $] Release [NOTE that only Alpha/Beta releases occur in 2.1 development]: 2.1.0 : in development Please consult the following STATUS files for information on related projects: * srclib/apr/STATUS * srclib/apr-util/STATUS * docs/STATUS Contributors looking for a mission: * Just do an egrep on "TODO" or "XXX" in the source. * Review the "PatchAvailable" bugs in the bug database. Append a comment saying "Reviewed and tested". * Open bugs in the bug database. CURRENT RELEASE NOTES: RELEASE SHOWSTOPPERS: * Handling of non-trailing / config by non-default handler is broken http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105451701628081&w=2 * the edge connection filter cannot be removed http://marc.theaimsgroup.com/?l=apache-httpd-dev&m=105366252619530&w=2 CURRENT VOTES: * Promote mod_cache from experimental to non-experimental status (keep issues noted below in EXPERIMENTAL MODULES as items to be addressed as a supported module). +1: jim, bnicholes -0: jerenkrantz -1: stoddard There are a couple of problems that need to be resolved before this module is moved out of experimental. 1) We need to at least review and comment on the RFC violations 2) Resolve issue of how to cache page fragements (or perhaps -if- we want to cache page fragements). Today, mod_cache/mod_mem_cache will cache #include 'virtual' requests (but not #include 'file' requests). This was accomplished by making CACHE_IN a CONTENT_SET-1 filter to force it to run before the SUBREQ_CORE filter. But now responses cannot be cached that include the effects of having been run through CONTENT_SET filters (mod_deflate, mod_expires, etc). We could rerun all the CONTENT_SET filters on the cached response, but this will not work in all cases. For example, mod_expires relies on installing the EXPIRATION filter during fixups. Contents served out of mod_cache (out of the quick_handler) bypass -all- the request line server hooks (Ryan really hated this. It is great for performance, but bad because of the complications listed above). jerenkrantz: There are a slew of RFC compliance bugs filed in Bugzilla for mod_cache (see 'RFC 2616 violations' below). I think fixing them is a pre-requisite before it isn't experimental. * httpd-std.conf and friends a) httpd-std.conf should be tailored by install (from src or binbuild) even if user has existing httpd.conf +1: trawick, slive, gregames, ianh, Ken, wrowe, jwoolley, jim, nd, erikabele wrowe - prefer httpd.default.conf to avoid ambiguity with cvs b) tailored httpd-std.conf should be copied by install to sysconfdir/examples -0: striker c) tailored httpd-std.conf should be installed to sysconfdir/examples or manualdir/exampleconf/ +1: slive, trawick, Ken, nd (prefer the latter), erikabele d) Installing a set of default config files when upgrading a server doesn't make ANY sense at all. +1: ianh - medium/big sites don't use 'standard config' anyway, as it usually needs major customizations -1: Ken, wrowe, jwoolley, jim, nd, erikabele wrowe - diff is wonderful when comparing old/new default configs, even for customized sites that ianh mentions jim - ... assuming that the default configs have been updated with the required inline docs to explain the changes * If the parent process dies, should the remaining child processes "gracefully" self-terminate. Or maybe we should make it a runtime option, or have a concept of 2 parent processes (one being a "hot spare"). See: Message-ID: <[EMAIL PROTECTED]> Self-destruct: Ken, Martin, Lars Not self-destruct: BrianP, Ian, Cliff, BillS Make it runtime configurable: Aaron, jim, Justin, wrowe, rederpj, nd /* The below was a concept on *how* to handle the problem */ Have 2 parents: +1: jim -1: Justin, wrowe, rederpj, nd +0: Lars, Martin (while standing by, could it do something useful?) * Make the worker MPM the default MPM for threaded Unix boxes. +1: Justin, Ian, Cliff, BillS, striker, wrowe, nd +0: BrianP, Aaron (mutex contention is looking better with the latest code, let's continue tuning and testing), rederpj, jim -0: Lars RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP: * Patches submitted to the bug database: http://nagoya.apache.org/bugzi
[STATUS] (httpd-2.0) Wed Jan 21 23:45:10 EST 2004
APACHE 2.0 STATUS: -*-text-*- Last modified at [$Date: 2004/01/21 15:00:50 $] Release: 2.0.49 : in development 2.0.48 : released October 29, 2003 as GA. 2.0.47 : released July 09, 2003 as GA. 2.0.46 : released May 28, 2003 as GA. 2.0.45 : released April 1, 2003 as GA. 2.0.44 : released January 20, 2003 as GA. 2.0.43 : released October 3, 2002 as GA. 2.0.42 : released September 24, 2002 as GA. 2.0.41 : rolled September 16, 2002. not released. 2.0.40 : released August 9, 2002 as GA. 2.0.39 : released June 17, 2002 as GA. 2.0.38 : rolled June 16, 2002. not released. 2.0.37 : rolled June 11, 2002. not released. 2.0.36 : released May 6, 2002 as GA. 2.0.35 : released April 5, 2002 as GA. 2.0.34 : tagged March 26, 2002. 2.0.33 : tagged March 6, 2002. not released. 2.0.32 : released Feburary 16, 2002 as beta. 2.0.31 : rolled Feburary 1, 2002. not released. 2.0.30 : tagged January 8, 2002. not rolled. 2.0.29 : tagged November 27, 2001. not rolled. 2.0.28 : released November 13, 2001 as beta. 2.0.27 : rolled November 6, 2001 2.0.26 : tagged October 16, 2001. not rolled. 2.0.25 : rolled August 29, 2001 2.0.24 : rolled August 18, 2001 2.0.23 : rolled August 9, 2001 2.0.22 : rolled July 29, 2001 2.0.21 : rolled July 20, 2001 2.0.20 : rolled July 8, 2001 2.0.19 : rolled June 27, 2001 2.0.18 : rolled May 18, 2001 2.0.17 : rolled April 17, 2001 2.0.16 : rolled April 4, 2001 2.0.15 : rolled March 21, 2001 2.0.14 : rolled March 7, 2001 2.0a9 : released December 12, 2000 2.0a8 : released November 20, 2000 2.0a7 : released October 8, 2000 2.0a6 : released August 18, 2000 2.0a5 : released August 4, 2000 2.0a4 : released June 7, 2000 2.0a3 : released April 28, 2000 2.0a2 : released March 31, 2000 2.0a1 : released March 10, 2000 Please consult the following STATUS files for information on related projects: * srclib/apr/STATUS * srclib/apr-util/STATUS * docs/STATUS Contributors looking for a mission: * Just do an egrep on "TODO" or "XXX" in the source. * Review the "PatchAvailable" bugs in the bug database. Append a comment saying "Reviewed and tested". * Open bugs in the bug database. RELEASE SHOWSTOPPERS: PR 24469, broken reverse lookups with IPv4-mapped addrs on old OS X The autoconf check added between 2.0.47 and 2.0.48 isn't sufficient for catching the OS X problem, because building the IPv4 numeric address string from IPv4-mapped address would work but actually resolving the host would not. To catch the check via retcode, you have to specify the NI_NAMEREQD flag. * unescaped error logs seem to be essential for some folks backport -DAP_UNSAFE_ERROR_LOG_UNESCAPED to 2.0 and 1.3 server/log.c: r1.139, r1.140 +1: nd, stas, geoff PATCHES TO BACKPORT FROM 2.1 [ please place file names and revisions from HEAD here, so it is easy to identify exactly what the proposed changes are! ] * proxy_http fix: mod_proxy hangs when both KeepAlive and ProxyErrorOverride are enabled, and a non-200 response without a body is generated by the backend server. http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/proxy/proxy_http.c?r1=1.176&r2=1.177 +1: stoddard, nd * Win32: Port Win32DisableAcceptEx directive. This fix enables using Winsock 1.1 accept() call in place of Winsock 2.0 AcceptEx() to work around bugs in third party layered service providers (e.g. virus scanners) that do not properly handle various Winsock 2 APIs. http://cvs.apache.org/viewcvs.cgi/httpd-2.0/server/mpm/winnt/child.c?r1=1.19&r2=1.20 http://cvs.apache.org/viewcvs.cgi/httpd-2.0/server/mpm/winnt/mpm_winnt.c?r1=1.301&r2=1.302 http://cvs.apache.org/viewcvs.cgi/httpd-2.0/server/mpm/winnt/mpm_winnt.h?r1=1.42&r2=1.43 +1: stoddard, trawick (with subsequent change to messages), ake * If large file support is enabled, allow any file that is greater than AP_MAX_SENDFILE to be split into multiple buckets. This allows Apache to send files that are greater than 2gig. Otherwise we run into 32/64 bit type mismatches in the file size. server/core.c r1.255, r1.256 +1: bnicholes, nd * mod_dav: Reject requests including fragment part in the Request-URI. http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/dav/main/mod_dav.c?r1=1.102&r2=1.103 PR: 21779 +1: jorton nd asks: Should we make it runtime configurable either to 400, drop the fragment or just treat it as part of the filename? * Fix segfault in mod_mem_cache cache_insert() due to cache size becoming negative. PR: 21285, 21287 http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/experi
[STATUS] (apache-1.3) Wed Jan 21 23:45:05 EST 2004
APACHE 1.3 STATUS: -*-text-*- Last modified at [$Date: 2003/11/27 17:03:36 $] Release: 1.3.30-dev: In development 1.3.29: Tagged October 24, 2003. Announced Oct 29, 2003. 1.3.28: Tagged July 16, 2003. Announced ?? 1.3.27: Tagged September 30, 2002. Announced Oct 3, 2002. 1.3.26: Tagged June 18, 2002. 1.3.25: Tagged June 17, 2002. Not released. 1.3.24: Tagged Mar 21, 2002. Announced Mar 22, 2002. 1.3.23: Tagged Jan 21, 2002. 1.3.22: Tagged Oct 8, 2001. Announced Oct 12, 2001. 1.3.21: Not released. (Pulled for htdocs/manual config mismatch. t/r Oct 5, 2001) 1.3.20: Tagged and rolled May 15, 2001. Announced May 21, 2001. 1.3.19: Tagged and rolled Feb 26, 2001. Announced Mar 01, 2001. 1.3.18: Tagged and rolled Not released. (Pulled because of an incorrect unescaping fix. t/r Feb 19, 2001) 1.3.17: Tagged and rolled Jan 26, 2001. Announced Jan 29, 2001. 1.3.16: Not released. (Pulled because of vhosting bug. t/r Jan 20, 2001) 1.3.15: Not released. (Pulled due to CVS dumping core during the tagging when it reached src/os/win32/) 1.3.14: Tagged and Rolled Oct 10, 2000. Released/announced on the 13th. 1.3.13: Not released. (Pulled in the "first minutes" due to a Netware build bug) 1.3.12: Tagged and rolled Feb. 23, 2000. Released/announced on the 25th. 1.3.11: Tagged and rolled Jan. 19, 2000. Released/announced on the 21st. 1.3.10: Not released. (Pulled at "last minute" due to a build bug in the MPE port) 1.3.9: Tagged and rolled on Aug. 16, 1999. Released and announced on 19th. 1.3.8: Not released. 1.3.7: Not released. 1.3.6: Tagged and rolled on Mar. 22, 1999. Released and announced on 24th. 1.3.5: Not released. 1.3.4: Tagged and rolled on Jan. 9, 1999. Released on 11th, announced on 12th. 1.3.3: Tagged and rolled on Oct. 7, 1998. Released on 9th, announced on 10th. 1.3.2: Tagged and rolled on Sep. 21, 1998. Announced and released on 23rd. 1.3.1: Tagged and rolled on July 19, 1998. Announced and released. 1.3.0: Tagged and rolled on June 1, 1998. Announced and released on the 6th. 2.0 : Available for general use, see httpd-2.0 repository RELEASE SHOWSTOPPERS: * Bugz: 24483 RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP: * isn't ap_die() broken with recognizing recursive errors Message-Id: <[EMAIL PROTECTED]> +1: jeff, jim * Current vote on 3 PRs for inclusion: Bugz #17877 (passing chunked encoding thru proxy) (still checking if RFC compliant... vote is on the correctness of the patch code only). +1: jim, chuck, minfrin Bugz #9181 (Unable to set headers on non-2XX responses) +1: Martin, Jim Gnats #10246 (Add ProxyConnAllow directive) +0: Martin (or rather -.5, see dev@ Message <[EMAIL PROTECTED]>) * htpasswd.c and htdigest.c use tmpnam()... consider using mkstemp() when available. Message-ID: <[EMAIL PROTECTED]> Status: * Dean's "unescaping hell" (unescaping the various URI components at the right time and place, esp. unescaping the host name). Message-ID: <[EMAIL PROTECTED]> Status: * Martin observed a core dump because a ipaddr_chain struct contains a NULL-"server" pointer when being dereferenced by invoking "httpd -S". Message-ID: <[EMAIL PROTECTED]> Status: Workaround enabled. Clean solution can come after 1.3.19 * long pathnames with many components and no AllowOverride None Workaround is to define with AllowOverride None, which is something all sites should do in any case. Status: Marc was looking at it. (Will asks 'wasn't this patched?') * Ronald Tschalär's patch to mod_proxy to allow other modules to set headers too (needed by mod_auth_digest) Message-ID: <[EMAIL PROTECTED]> Status: Available Patches (Most likely, will be ported to 2.0 as appropriate): * A rewrite of ap_unparse_uri_components() by Jeffrey W. Baker <[EMAIL PROTECTED]> to more fully close some segfault potential. Message-ID: <[EMAIL PROTECTED]> Status: Jim +1 (for 1.3.19), Martin +0 * Andrew Ford's patch (1999/12/05) to add absolute times to mod_expires Message-ID: <[EMAIL PROTECTED]> Status: Martin +1, Jim +1, Ken +1 (on concept) * Raymond S Brand's path to mod_autoindex to fix the header/readme include processing so the envariables are correct for the included documents. (Actually, there are two variants in the patch message, for two different ways of doing it.) Message-ID: <[EMAIL PROTECTED]> Status: Martin +1(concept) * Jayaram's patch (10/27/99) for bugfix to mod_autoindex IndexIgnore should hide the files with this f
Re: [PATCH] (mod_stats) Add printing of response time
Any feeling as to whether or not this can be incorporated into Apache? Brett E. wrote: This patch basically computes the average response time and adds "X ms/request response time" where X is the response time in milliseconds to the mod_status display It works by taking the average of response times of threads who processed a request within the last RESPTIME_WINDOW_SECS seconds. I set this to 5 seconds. I also added in the functionality to print the last response time (Req column), previously this was hardcoded to 0 since we didn't bother to fill out start_time and stop_time. Thoughts? This is my first patch submission so please, be easy. :) Maybe we weren't filling out start_time/stop_time due to excessive CPU caused by getting the time?
Re: cvs commit: httpd-2.0/modules/filters mod_deflate.dsp
* [EMAIL PROTECTED] wrote: > nd 2004/01/21 12:55:22 > > Modified:.Makefile.win >modules/filters mod_deflate.dsp > Log: > revert the zlib.lib linkage patch. Bill Rowe said, it's worse than before. However, alternative solutions and more explanations are appreciated. Bill? :) nd
Re: SSL renegotiation bug
On Wed, 2004-01-21 at 11:26, Joe Orton wrote: > By doing graceful restarts every few seconds during a large import, I > could reproduce a hang using ra_dav both over SSL or over plain HTTP to > a 0.36.0 server running on the localhost, when using DB 4.1.25. I've > upgraded to 4.2.52 and I can no longer reproduce the problem. > > Were you using DB 4.2.52 too, and could you not reproduce the issue when > using plain HTTP? Holy cow, maybe this isn't an SSL problem at all! I was able to reproduce the bug doing an import over plain http://... sorry for not trying that experiment earlier. It takes 2 or 3 'graceful' attempts, but I definitely get the same hang. The server is running BDB 4.2.50, svn 0.35.1. When I point my same client to http://locahost (instead of the server box) I'm unable to reproduce the hang. (localhost is running svn 0.36 and BDB 4.2.50.)
Re: SSL renegotiation bug
On Wed, Jan 21, 2004 at 11:12:20AM -0600, Ben Collins-Sussman wrote: > On Wed, 2004-01-21 at 04:29, Joe Orton wrote: > > I have now managed to reproduce hangs a couple of times here, > > What exactly was your reproduction recipe? Same as mine? Start an > import over SSL and then 'graceful' the server? By doing graceful restarts every few seconds during a large import, I could reproduce a hang using ra_dav both over SSL or over plain HTTP to a 0.36.0 server running on the localhost, when using DB 4.1.25. I've upgraded to 4.2.52 and I can no longer reproduce the problem. Were you using DB 4.2.52 too, and could you not reproduce the issue when using plain HTTP? > > only using > > db-4.1.25 on the server: the child was sat eating CPU, either doing no > > syscalls or doing: > > > > futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily > > unavailable) > > futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily > > unavailable) > > futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily > > unavailable) > > futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily > > unavailable) > > futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily > > unavailable) > > > > ...which could be a db4 issue. Is that consistent with what you're > > seeing with 4.2.52? > > I'm pretty ignorant about strace-y things. Why do you think this output > is relevant to BDB? POSIX mutexes are the only thing in use which will use futexes for locking, and only DB4 is configured to use POSIX mutexes, ergo either DB4 (or libpthread itself) is looping like that. > I wonder if the next step is to simply try reproducing the bug by > running client and server both on my local box? (It's a RH9 box with the > latest 2.4.20 kernel.) Yes, sounds good. joe
Re: SSL renegotiation bug
On Wed, 2004-01-21 at 04:29, Joe Orton wrote: > > $ sudo strace -p 3850 > > trace: ptrace(PTRACE_SYSCALL, ...): Operation not permitted > > detach: ptrace(PTRACE_DETACH, ...): Operation not permitted > > Ah, add "CoreDumpDirectory /tmp" to your httpd.conf and make sure you're > running the latest errata kernel so that ptrace works properly... Criminy, I'm testing on a server where I don't really have the ability to upgrade the kernel. It's a redhat 7.2 machine running kernel 2.4.20. I added the CoreDumpDirectory directive, but 'strace' still doesn't work correctly. > > I have now managed to reproduce hangs a couple of times here, What exactly was your reproduction recipe? Same as mine? Start an import over SSL and then 'graceful' the server? > only using > db-4.1.25 on the server: the child was sat eating CPU, either doing no > syscalls or doing: > > futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily > unavailable) > futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily > unavailable) > futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily > unavailable) > futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily > unavailable) > futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily > unavailable) > > ...which could be a db4 issue. Is that consistent with what you're > seeing with 4.2.52? I'm pretty ignorant about strace-y things. Why do you think this output is relevant to BDB? I wonder if the next step is to simply try reproducing the bug by running client and server both on my local box? (It's a RH9 box with the latest 2.4.20 kernel.)
Re: [1.3 PATCH] a different take on forensics
Ben Laurie wrote: Jeff Trawick wrote: See http://www.apache.org/~trawick/exception_hook_13.html You should make the logged strings safe, like mod_log_forensic does, and I think the format should be compatible (which means no space after the colon). Thanks for taking a look! I removed the space after the colon, but at present am not too eager about the escaping of the strings. If for some reason the module would be seriously considered for committing to cvs, that is a different ballgame, of course. Same if for some other reason I get the idea that folks would actually use it. What I'd really like to see happen is have the patch to core committed. If people are truly interested in having the module(s) put in experimental, that is cool too though I'm not sure I think that's such a good idea until/unless it is clear that it will be used by more than a handful of people (bloat). BTW, I changed the storage allocation of the "hook" record to use pconf and to clear the list via a cleanup registered on pconf (http://www.apache.org/~trawick/13_fatal_exception_patch).
Re: cvs commit: httpd-dist KEYS
On Mon, 2004-01-19 at 12:32, [EMAIL PROTECTED] wrote: > martin 2004/01/19 03:32:59 > > Modified:.KEYS > Log: > No need to spam innocent people I'd think that the spammers have picked up on the s/@/ at / trick by now. I don't really see how this fixes things for these people. *shrug* Sander
Re: [PATCH] block speed up
Brian Akins wrote: How "wrong" would it be to have a map_to_storage that simply filled out r->finfo and returned OK (or the appropriate error) always? IE, no directory or file walk. From what I understand, Directory and File directives would be useless, but Location would still work. Is this correct? When the URI represents a file, the directory walk fills in r->finfo fairly efficiently - just one stat() typically followed by an open() from the handler. I'd like to see that change to an open() - fstat() sequence to be even more efficient, but that's a different topic. What I'm trying to do here is deal with the case where the URI is known to be completely outside the filesystem, like server-status for example. r->finfo is meaningless in that case - there is no file as far as the core code can tell. Greg
Re: [PATCH] block speed up
How "wrong" would it be to have a map_to_storage that simply filled out r->finfo and returned OK (or the appropriate error) always? IE, no directory or file walk. From what I understand, Directory and File directives would be useless, but Location would still work. Is this correct? -- Brian Akins Senior Systems Engineer CNN Internet Technologies
Re: SSL renegotiation bug
On Tue, Jan 20, 2004 at 04:35:34PM -0600, Ben Collins-Sussman wrote: > Sorry to be so slow in getting back to you, Joe. I'm still desperately > looking for a clue on this SSL "hang" that happens when I run 'apachectl > graceful'. > > On Wed, 2004-01-14 at 15:51, Joe Orton wrote: > > > > The client is hanging on a select() call: > > > > What's the server doing? > > Hm, I can't seem to figure it out, having bad luck with strace on the > server: > > $ sudo netstat -pt > [...] > tcp 3066 0 dev37.spdev.colla:https 10.3.0.6:37848 ESTABLISHED 3850/ > tcp 4179 0 dev37.spdev.colla:https 10.3.0.6:37786 CLOSE_WAIT 3446/ > [...] > > $ sudo strace -p 3850 > trace: ptrace(PTRACE_SYSCALL, ...): Operation not permitted > detach: ptrace(PTRACE_DETACH, ...): Operation not permitted Ah, add "CoreDumpDirectory /tmp" to your httpd.conf and make sure you're running the latest errata kernel so that ptrace works properly... I have now managed to reproduce hangs a couple of times here, only using db-4.1.25 on the server: the child was sat eating CPU, either doing no syscalls or doing: futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0xbf58b1b0, FUTEX_WAIT, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable) ...which could be a db4 issue. Is that consistent with what you're seeing with 4.2.52? joe
Re: [1.3 PATCH] a different take on forensics
Jeff Trawick wrote: See http://www.apache.org/~trawick/exception_hook_13.html There is a small patch to Apache 1.3 required to make the sample modules work. This is analogous to the toys using the Apache 2.1 exception hook which are described at http://www.apache.org/~trawick/exception_hook.html. You should make the logged strings safe, like mod_log_forensic does, and I think the format should be compatible (which means no space after the colon). Nice idea. Cheers, Ben. -- http://www.apache-ssl.org/ben.html http://www.thebunker.net/ "There is no limit to what a man can do or how far he can go if he doesn't mind who gets the credit." - Robert Woodruff