← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1172922] Re: Nova and quantum don't close qpid connections after certain error conditions

 

** Changed in: cinder/grizzly
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1172922

Title:
  Nova and quantum don't close qpid connections after certain error
  conditions

Status in Cinder:
  Fix Released
Status in Cinder grizzly series:
  Fix Released
Status in OpenStack Neutron (virtual network service):
  Fix Released
Status in neutron grizzly series:
  Fix Released
Status in OpenStack Compute (Nova):
  Fix Released
Status in OpenStack Compute (nova) grizzly series:
  Fix Released
Status in Oslo - a Library of Common OpenStack Code:
  Fix Released

Bug description:
  In conditions where nova gets a connection to qpid but there is a
  problem at the application layer (such as a bad qpid password is
  specified), nova will continuously retry the connection without
  closing previous connections.

  Steps to reproduce:
  - Preconditions: At least 1 nova compute node using qpid for messaging, with authentication turned on.
  - Specify a wrong qpid password in nova.conf on the compute node
  - nova will continuously retry with the wrong password and print errors such as this to the compute log:
  2013-04-25 16:37:52.269 ERROR nova.openstack.common.rpc.impl_qpid [req-1d15f33c-5b2d-4ee1-aaa1-ab0140a56608 None None] Unable to connect to AMQP server: connection-forced: Authentication failed(320). Sleeping 60 seconds
  - Each time nova retries the connection, it will create another connection to qpid and not close the previous connections.

  
  I think this exception case needs to be updated in https://github.com/openstack/nova/blob/master/nova/openstack/common/rpc/impl_qpid.py to close the connection:

              except qpid_exceptions.ConnectionError, e:
                  msg_dict = dict(e=e, delay=delay)
                  msg = _("Unable to connect to AMQP server: %(e)s. "
                          "Sleeping %(delay)s seconds") % msg_dict
                  LOG.error(msg)
                  time.sleep(delay)
                  delay = min(2 * delay, 60)

  Note that quantum uses the same code for qpid.

To manage notifications about this bug go to:
https://bugs.launchpad.net/cinder/+bug/1172922/+subscriptions