I had thought that could be the issue so I added an explicit close, but no change. With or without sending the close message (we're using Tir on the backend) I see Mongrel2 run my filter on either RESP_SENT or CLOSE if I hit my service from a browser, and it never executes it if I hit it from curl (or libcurl)
-Rob On 5/17/12 12:16 PM, Justin Karneges wrote: > This week I noticed that Mongrel2's python library doesn't issue close > messages by default. Of course this is to ensure streaming works, but for some > reason I figured if Content-Length was passed and enough content sent, then > either the python library would send a close message or Mongrel2 would > automatically close the connection but it turns out that neither of these > things actually happen. > > Curl and pretty much every browser seems to receive HTTP responses just fine > with this behavior. But some other clients are pickier, and need the explicit > close (like Pingdom for example). I'm not sure what the right server behavior > is, but I've started issuing explicit close messages from my handlers when my > intention is that the HTTP response is complete. > > I don't know if this is the issue you're seeing, but I'm mentioning it just in > case. > > On Thursday, May 17, 2012 11:49:00 AM Alberto Salce wrote: >> Could this be related to why ApacheBenchmark and Mongrel2 don't get >> along. AB just hangs like if the connections are not being accepted. >> Siege works just fine. >> >> On 5/17/2012 12:14 PM, Rob LaRubbio wrote: >>> I'm trying to write a filter that I can use to track how long requests >>> are taking to run through my system. The filter is pretty simple, it >>> just intercepts the REQ_RECV and RESP_SENT states, tracks the time of >>> each and prints it. >>> >>> When I run my filter and access my server with a browser I see both >>> states execute and the filter correctly prints the time. However if I >>> access my server using curl on the command line I only see REQ_RECV. I >>> do see the response from my service in the terminal and the curl command >>> returns. I've also tried different combination of states with HANDLER& >>> CLOSED but I still see the same results. I'm a little stumped by this >>> so any suggestions on where to look next would be really helpful. >>> >>> -Rob
