upgrade to kombu-1.4.3 breaks supervisor

Bug #893600 reported by Muharem Hrnjadovic
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenQuake (deprecated)
Fix Released
High
Muharem Hrnjadovic

Bug Description

Traceback (most recent call last):
  File "/usr/bin/openquake", line 124, in <module>
    job.run_job(FLAGS.config_file, FLAGS.output_type)
  File "/usr/lib/pymodules/python2.7/openquake/job/__init__.py", line 101, in run_job
    supervisor.supervise(job_pid, a_job.job_id)
  File "/usr/lib/pymodules/python2.7/openquake/supervising/supervisor.py", line 255, in supervise
    supervisor = SupervisorLogMessageConsumer(job_id, pid, timeout)
  File "/usr/lib/pymodules/python2.7/openquake/supervising/supervisor.py", line 173, in __init__
    routing_key=key)
  File "/usr/lib/pymodules/python2.7/openquake/signalling.py", line 76, in __init__
    consumer = kombu.messaging.Consumer(self.channel, queue)
  File "/usr/lib/pymodules/python2.7/kombu/messaging.py", line 257, in __init__
    self.declare()
  File "/usr/lib/pymodules/python2.7/kombu/messaging.py", line 267, in declare
    queue.declare()
  File "/usr/lib/pymodules/python2.7/kombu/entity.py", line 381, in declare
    self.queue_declare(nowait, passive=False)
  File "/usr/lib/pymodules/python2.7/kombu/entity.py", line 401, in queue_declare
    nowait=nowait)
  File "/usr/lib/pymodules/python2.7/kombu/syn.py", line 23, in blocking
    return __sync_current(fun, *args, **kwargs)
  File "/usr/lib/pymodules/python2.7/kombu/syn.py", line 39, in __blocking__
    return fun(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/amqplib/client_0_8/channel.py", line 1381, in queue_declare
    (50, 11), # Channel.queue_declare_ok
  File "/usr/lib/python2.7/dist-packages/amqplib/client_0_8/abstract_channel.py", line 97, in wait
    return self.dispatch_method(method_sig, args, content)
  File "/usr/lib/python2.7/dist-packages/amqplib/client_0_8/abstract_channel.py", line 115, in dispatch_method
    return amqp_method(self, args)
  File "/usr/lib/python2.7/dist-packages/amqplib/client_0_8/channel.py", line 273, in _close
    (class_id, method_id))
amqplib.client_0_8.exceptions.AMQPChannelException: (403, u"ACCESS_REFUSED - queue name 'amq.gen-FAs79wgz1Z4kOaA8CIpfgQ==' contains reserved prefix 'amq.*'", (50, 10), 'Channel.queue_declare')

Changed in openquake:
status: New → In Progress
importance: Undecided → High
assignee: nobody → Muharem Hrnjadovic (al-maisan)
milestone: none → 0.4.6
tags: added: defect messaging
Revision history for this message
Muharem Hrnjadovic (al-maisan) wrote :

This fixes the issue: http://paste.ubuntu.com/746150/

Apparently the names generated for exclusive queues start with an 'amq.' prefix which is invalid in the 0.9.1 amqp standard. The workaround is to *always* specify a queue name (e.g. a random one).

Revision history for this message
Muharem Hrnjadovic (al-maisan) wrote :
Revision history for this message
Muharem Hrnjadovic (al-maisan) wrote :

The upgrade to kombu-1.4.3 breaks openquake code that uses exclusive
queues and kombu.messaging.Consumer(). The latter apparently now also
declares the queues in question which breaks for exclusive queues.

The solutions is to specify auto_declare=False and thus prevent
kombu.messaging.Consumer() from redeclaring the queue.

Changed in openquake:
status: In Progress → Fix Committed
Changed in openquake:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.