← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1074132] Re: infinite child spawn loop when rabbit_durable_queues differs from rabbit server

 

** Changed in: glance/grizzly
   Importance: Undecided => High

** Changed in: glance/grizzly
       Status: New => Fix Released

** Changed in: glance/grizzly
    Milestone: None => 2013.1

** Changed in: glance/grizzly
     Assignee: (unassigned) => Brian Waldon (bcwaldon)

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

Title:
  infinite child spawn loop when rabbit_durable_queues differs from
  rabbit server

Status in OpenStack Image Registry and Delivery Service (Glance):
  Fix Released
Status in Glance grizzly series:
  Fix Released

Bug description:
  With a vanilla devstack install, set the following values in
  /etc/glance/glance-api.conf:

  workers = 1
  notifier_strategy = noop
  rabbit_password = secrete
  rabbit_durable_queues = False

  Restart glance-api - everything should be fine and notifications
  should be pushed out to rabbit. Now change the following value:

  rabbit_durable_queus = True

  Restart glance-api - the service will enter an infinite loop where the
  child process raises an exception that looks like the following and
  exits, causing the parent to restart it:

  2012-11-01 20:43:30 17554 TRACE glance     self._connect()
  2012-11-01 20:43:30 17554 TRACE glance   File "/opt/stack/glance/glance/notifier/notify_kombu.py", line 121, in _connect
  2012-11-01 20:43:30 17554 TRACE glance     queue.declare()
  2012-11-01 20:43:30 17554 TRACE glance   File "/usr/local/lib/python2.7/dist-packages/kombu/entity.py", line 359, in declare
  2012-11-01 20:43:30 17554 TRACE glance     return (self.name and self.exchange.declare(nowait),
  2012-11-01 20:43:30 17554 TRACE glance   File "/usr/local/lib/python2.7/dist-packages/kombu/entity.py", line 151, in declare
  2012-11-01 20:43:30 17554 TRACE glance     nowait=nowait)
  2012-11-01 20:43:30 17554 TRACE glance   File "/usr/local/lib/python2.7/dist-packages/kombu/syn.py", line 14, in blocking
  2012-11-01 20:43:30 17554 TRACE glance     return __sync_current(fun, *args, **kwargs)
  2012-11-01 20:43:30 17554 TRACE glance   File "/usr/local/lib/python2.7/dist-packages/kombu/syn.py", line 40, in __eblocking__
  2012-11-01 20:43:30 17554 TRACE glance     return spawn(fun, *args, **kwargs).wait()
  2012-11-01 20:43:30 17554 TRACE glance   File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 166, in wait
  2012-11-01 20:43:30 17554 TRACE glance     return self._exit_event.wait()
  2012-11-01 20:43:30 17554 TRACE glance   File "/usr/local/lib/python2.7/dist-packages/eventlet/event.py", line 116, in wait
  2012-11-01 20:43:30 17554 TRACE glance     return hubs.get_hub().switch()
  2012-11-01 20:43:30 17554 TRACE glance   File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 177, in switch
  2012-11-01 20:43:30 17554 TRACE glance     return self.greenlet.switch()
  2012-11-01 20:43:30 17554 TRACE glance   File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 192, in main
  2012-11-01 20:43:30 17554 TRACE glance     result = function(*args, **kwargs)
  2012-11-01 20:43:30 17554 TRACE glance   File "/usr/local/lib/python2.7/dist-packages/amqplib/client_0_8/channel.py", line 843, in exchange_declare
  2012-11-01 20:43:30 17554 TRACE glance     (40, 11),    # Channel.exchange_declare_ok
  2012-11-01 20:43:30 17554 TRACE glance   File "/usr/local/lib/python2.7/dist-packages/amqplib/client_0_8/abstract_channel.py", line 105, in wait
  2012-11-01 20:43:30 17554 TRACE glance     return amqp_method(self, args)
  2012-11-01 20:43:30 17554 TRACE glance   File "/usr/local/lib/python2.7/dist-packages/amqplib/client_0_8/channel.py", line 273, in _close
  2012-11-01 20:43:30 17554 TRACE glance     (class_id, method_id))
  2012-11-01 20:43:30 17554 TRACE glance AMQPChannelException: (406, u"PRECONDITION_FAILED - cannot redeclare exchange 'glance' in vhost '/' with different type, durable, internal or autodelete value", (40, 10), 'Channel.exchange_declare')

  
  I would expect the service to stop either before each child is created or after each child fails to start properly.

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