On Fri, 2009-03-27 at 09:56 +0100, Gustaf Neumann wrote: > Andrew Steets schrieb: > > As Scott suggested, we should probably log everything, at least for > > some reasonable value of "everything." Even if you switch the access > > log trace to the cleanup callback, you still don't get access entries > > for clients who connect but don't issue a well formed HTTP request. I > > don't have a huge problem with that, and I think it would be difficult > > to log those types of events. > > > i am as well in favor of loging the adp_aborts, since this seems a used > idiom. > There is no advantage in omitting such entries in the log file, but it > might be > hard to figure out what happens without that. > > For example, in our production system, we use nginx, which logs these > requests on its own. A problem show up, when we try to debug a situation, > where some requests present in the nginx log are missing in the > aolserver log.
Hey, I just looked up some old manpage entries for ns_adp_abort. Here is my copy: http://rmadilo.com/files/nsapi/ns_adp_abort.html In short, ns_adp_abort is supposed to work just like ns_tcl_abort. It should not have any effect on logging, so there must be a bug in the current implementation. My guess is that it skips too much stuff, including trace filters, etc. But reading the manpage, I don't see any requirement to log anything either. Basically this is to allow a deep unwind of ADP processing which doesn't require a [catch]. Here's what the manpage says: ns_adp_abort Stop processing of ADP and throw away all output. Syntax ns_adp_abort ?return_value? Description This function aborts processing of the ADP file and any pending output up to that point is deleted. However, if a streaming script was processed before ns_adp_abort was called, the data will already have been output. Also, if any functions that cause output (such as ns_return or ns_write) were called before ns_adp_abort, their output will already have been output also. ns_adp_abort closes the connection without returning an empty HTML page. Every ns_returnxxx call in an ADP should be followed with a call to ns_adp_abort. The return_value, if specified, becomes the return value of the ADP. Note that this function returns all the way up the call stack. For example, suppose a.adp includes b.adp which includes c.adp, and c.adp calls ns_adp_abort. No code in b.adp or a.adp after the includes will be executed. You can get around this in one of two ways: * You can execute these calls in a.adp and b.adp, respectively: catch {ns_adp_include b.adp} retval catch {ns_adp_include c.adp} retval * Or, you can execute this call in c.adp: ns_adp_return ?retval? The ns_adp_return function returns up only one level. -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to <lists...@listserv.aol.com> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.