At Tue, 3 Nov 2009 15:09:03 -0800 (PST),
Maciej Dziardziel wrote:
> 
> 
> Hi
> 
> I am trying to simulate some waiting in helloworld so i modified it:
> 
> def hello_http(req):
>     dummy = (yield sleep(0.5))
>     yield http.http_response(req, 200, headers, content)
> 
> 
> now it works when i look into webbrowser,
> it works when run:
> 
>  ab -k -c 2 -n 10 'http://127.0.0.1:8888/
> 
> but when i run:
> 
> ab -k -c 200 -n 1000 'http://127.0.0.1:8888/'
> 
> i can see following exception in helloworld stderr:
> 
> [Tue Nov  3 23:46:51 2009] {error} -- Unhandled Exception in main loop
> --
> [Tue Nov  3 23:46:51 2009] {error} Traceback (most recent call last):
>   File "build/bdist.linux-x86_64/egg/diesel/app.py", line 49, in run
>     self.hub.handle_events()
>   File "build/bdist.linux-x86_64/egg/diesel/hub.py", line 93, in
> handle_events
>     self.events[fd][0]()
>   File "build/bdist.linux-x86_64/egg/diesel/core.py", line 406, in
> handle_read
>     self.shutdown(True)
>   File "build/bdist.linux-x86_64/egg/diesel/core.py", line 363, in
> shutdown
>     self.g.throw(ConnectionClosed)
>   File "build/bdist.linux-x86_64/egg/diesel/core.py", line 161, in
> cycle_all
>     item = current.throw(*error)
>   File "build/bdist.linux-x86_64/egg/diesel/protocols/http.py", line
> 216, in __call__
>     yield self.request_handler(req)
> ConnectionClosed
> 
> ab does not indicate any problems or failed requests.
> 
> I'd like to understand what happened. It seems that ab closed
> connection before receiving full response, am i right?
> And if thats true, then why it did that?

I'm not sure why ab would be closing that connection, but my guess is that it 
recieved as much of a response as it wanted before going to another request (if 
that makes sense). In any sense though, you are right in that connection is 
getting closed by the client, which raises the ConnectionClosed exception.

HTH,

Eric Larson

Reply via email to