0e34ed9733
Nova can occasionally fail to carry out server actions which require
calls to neutron API if haproxy happens to close a connection after
idle time if an incoming request attempts to re-use the connection
while it is being torn down.
In order to be more resilient to this scenario, we can add a config
option for neutron client to retry requests, similar to our existing
CONF.cinder.http_retries and CONF.glance.num_retries options.
Because we create our neutron client [1] using a keystoneauth1 session
[2], we can set the 'connect_retries' keyword argument to let
keystoneauth1 handle connection retries.
Closes-Bug: #1866937
[1] 57459c3429/nova/network/neutron.py (L226-L237)
[2] https://docs.openstack.org/keystoneauth/latest/api/keystoneauth1.session.html#keystoneauth1.session.Session
Change-Id: Ifb3afb13aff7e103c2e80ade817d0e63b624604a
13 lines
693 B
YAML
13 lines
693 B
YAML
---
|
|
fixes:
|
|
- |
|
|
A new config option ``[neutron]http_retries`` is added which defaults to
|
|
3. It controls how many times to retry a Neutron API call in response to a
|
|
HTTP connection failure. An example scenario where it will help is when a
|
|
deployment is using HAProxy and connections get closed after idle time. If
|
|
an incoming request tries to re-use a connection that is simultaneously
|
|
being torn down, a HTTP connection failure will occur and previously Nova
|
|
would fail the entire request. With retries, Nova can be more resilient in
|
|
this scenario and continue the request if a retry succeeds. Refer to
|
|
https://launchpad.net/bugs/1866937 for more details.
|