target.exchange is ignored by driver.listen()

Bug #1256345 reported by Mark McLoughlin on 2013-11-29
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
oslo.messaging
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.

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!).

Mark McLoughlin (markmc) wrote :

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

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

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) on 2014-06-12
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  Edit
Everyone can see this information.

Other bug subscribers