On 21/10/2010 01:09, Jeremy Boynes wrote: > When I run the async1 example in trunk, the request gets logged twice in the > access log: > 0:0:0:0:0:0:0:1%0 - - [20/Oct/2010:21:32:39 -0700] "GET > /examples/async/async1 HTTP/1.1" 200 - > 0:0:0:0:0:0:0:1%0 - - [20/Oct/2010:21:32:42 -0700] "GET > /examples/async/async1 HTTP/1.1" 200 863 > > Is this the expected behaviour or should the post-invoke part of > AccessLogValve be returning early for the first dispatch (when async has been > started)?
Looks like a bug to me. It might be a side-effect of the async refactoring I did but I must confess I didn't test access logging before or after the refactoring so it might always have been like this. Either way, please raise a bugzilla issue for this. As always, patches are very much appreciated. > However, with async2 which calls complete() from a background thread to > finish the request, only the first dispatch is logged: > 0:0:0:0:0:0:0:1%0 - - [20/Oct/2010:22:25:02 -0700] "GET > /examples/async/async2 HTTP/1.1" 200 - > It doesn't look like the Valve is being invoked at all when the request is > completed. Same as above. > It also logs the 200 response if I change Async2 to send an error response: > - actx.getResponse().getWriter().write("Output from > background thread. Time:"+System.currentTimeMillis()+"\n"); > + ((HttpServletResponse)actx.getResponse()).sendError(404); > which seems problematic as it looks form the log that the request was OK. > This does not send any data back to the client: And another one. While there are probably three separate changes required to fix this, the issues are so similar lets keep them in a single bug report - at least to start with. We can always break then out if we need to. Mark > $ curl -v http://localhost:8080/examples/async/async2 > * About to connect() to localhost port 8080 (#0) > * Trying ::1... connected > * Connected to localhost (::1) port 8080 (#0) >> GET /examples/async/async2 HTTP/1.1 >> User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 >> OpenSSL/0.9.8l zlib/1.2.3 >> Host: localhost:8080 >> Accept: */* >> > [[ delays for a few seconds ... ]] > * Empty reply from server > * Connection #0 to host localhost left intact > curl: (52) Empty reply from server > * Closing connection #0 > > Thanks > Jeremy > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org