Comment 1 for bug 1267649

Revision history for this message
Sudheendra Murthy (sudhi-vm) wrote :

There is a retry logic in httplib2 used by neutron that automatically retries requests. One instance when this kicks in is: client makes a connection —> issues request to the server —> server takes too long to respond (if busy) —> client socket timesout waiting for response and client goes for a retry. The end result is that the request may get processed twice at the server. There is a parameter RETRIES used in _conn_request(…) defined in __init__.py. This parameter is not configurable, hard-coded to 2.

One possible way to deal with this is to increase the timeout value (which is configurable) to a larger value. The default is 30 seconds and increasing it to larger value helps. This will not solve the issue, but could make it less likely to occur.

Here are Google references to the retry logic in httplib2:
https://code.google.com/p/httplib2/issues/detail?id=109
https://groups.google.com/forum/#!msg/google-api-python-client/VE1d7a7Wevg/elmt1MDsjmAJ
http://httplib2.googlecode.com/hg/doc/html/libhttplib2.html