target.exchange is ignored by driver.listen()

Bug #1256345 reported by Mark McLoughlin
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
oslo.messaging
Fix Released
High
Mehdi Abaakouk

Bug Description

Pointed out by Gordon Sim

If you set 'exchange' on the target passed to get_rpc_server(), then that value should override conf.control_exchange

An easy solution might be to just pass target.exchange to declare_topic_consumer() but I haven't looked too carefully

Also note this, which is somewhat related:

 # FIXME(markmc): temp hack
 if self._default_exchange:
            self.conf.set_override('control_exchange', self._default_exchange)

This is one of those cases where I didn't want to refactor the existing drivers too much until Nova is using the library and we could use Nova's use of it to give us confidence that we weren't causing regressions ... I didn't expect it to take so long for Nova to merge oslo.messaging support, though.

Tags: iso-testing
Revision history for this message
Gordon Sim (gsim) wrote :

In order to allow the same topic name to be used for different contexts, a unique 'name' would also need need to be passed into the TopicConsumers for impl_rabbit and impl_qpid (e.g. prepending the exchange to the topic), since without that the topic name will be used for the queue name which would cause messages for the different contexts to be interleaved on the same queue. (Or so I believe! I'm still getting familiar with the code!).

Revision history for this message
Mark McLoughlin (markmc) wrote :

Gordon - yep, and this is related to bug #1173552

Revision history for this message
Ubuntu QA Website (ubuntuqa) wrote :

This bug has been reported on the Ubuntu ISO testing tracker.

A list of all reports related to this bug can be found here:
http://iso.qa.ubuntu.com/qatracker/reports/bugs/1256345

tags: added: iso-testing
Changed in oslo.messaging:
assignee: nobody → Mehdi Abaakouk (sileht)
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to oslo.messaging (master)

Reviewed: https://review.openstack.org/90046
Committed: https://git.openstack.org/cgit/openstack/oslo.messaging/commit/?id=f4da21353956def06cb40e790b3a6f5275a68814
Submitter: Jenkins
Branch: master

commit f4da21353956def06cb40e790b3a6f5275a68814
Author: Mehdi Abaakouk <email address hidden>
Date: Thu Apr 24 12:04:20 2014 +0200

    Remove amqp default exchange hack

    This change remove the hack to set the default exchange of a transport in the
    amqp driver, by removing the usage of the configuration object to get the
    default exchange in rabbit and qpid driver, and instead use the value
    passed to the driver constructor into all amqp publishers and consumers
    class/method that needs it.

    Closes-bug: #1256345
    Change-Id: Iba54ca79a49f8545854205c1451b2403735c1006

Changed in oslo.messaging:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in oslo.messaging:
milestone: none → juno-1
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.