Comment 2 for bug 1568650

Revision history for this message
drax (devesh-gupta) wrote :

Clyag,

As per my analysis of the swift, eventlet and HTTPServer code. This problem is occurring due to the HTTPserver looping mechanism.

As already mentioned in the description, the loop will finish only when "self.close_connection" is set to 1 by the overridden function in wsgi.py.

In the situation mentioned above the iterator which is sending data to client gracefully exits when object service crashes.
As this is gracefull exit, handle_one_request function completes without setting self.close_connection to 1. Due to which the above loop calls this handle_one_request function again. As this function expects the client to send data initially (new request string) so it gets blocked as client is waiting for the data to be sent.

I have already mentioned the fix in description but i am not sure whether it will be required in some other places as well.