nova redeclares the `nova` named exchange zillion times without a real need

Bug #1437902 reported by Attila Fazekas
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Invalid
Undecided
Unassigned
oslo.messaging
Fix Released
Undecided
Mehdi Abaakouk

Bug Description

The AMQP broker preserves the exchanges, they are replaced to all broker even in non HA mode.
A transient exchange can disappear ONLY when the user explicitly requests it's deletion or when the full rabbit cluster dies.

More efficient to declare exchanges only when it is really missing.

Application MUST redeclare the exchange when it was reported as Not Found.
Note.: The Channel exceptions causes channel termination, but not connection termination.
Application MAY try to redeclare the exchange on connection breakage, it can assume the messaging cluster dead.
Application SHOULD redeclare the exchange at application start up to verify the attributes (Before the first usage).
Application does not needs to redeclare the exchange in any other cases.

Now, significant amount of the AMQP request/response-es is Exchange.Declare -> Exchange.Declare-Ok. (One per publish?)

Revision history for this message
Davanum Srinivas (DIMS) (dims-v) wrote :

Is this because of how oslo.messaging is implemented or how nova uses oslo.messaging?

Revision history for this message
Sean Dague (sdague) wrote :

My assumption is this is an oslo.messaging level activity, I don't believe we do anything explicitly in nova for it.

Changed in nova:
status: New → Incomplete
Mehdi Abaakouk (sileht)
Changed in oslo.messaging:
status: New → Confirmed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to oslo.messaging (master)

Fix proposed to branch: master
Review: https://review.openstack.org/179270

Changed in oslo.messaging:
assignee: nobody → Mehdi Abaakouk (sileht)
status: Confirmed → In Progress
Mehdi Abaakouk (sileht)
Changed in oslo.messaging:
milestone: none → next-liberty
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to oslo.messaging (master)

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

commit 1ba55c03b57acd5631652c556c2c257f9f7af6e3
Author: Mehdi Abaakouk <email address hidden>
Date: Thu Apr 30 23:33:39 2015 +0200

    rabbit: smarter declaration of the notif. queue

    The NotifyPublisher was redeclaring again and again,
    the same exchange and queue each times a notification is sent.

    This change fixes that by caching the already declared exchange
    and queue for each channel.

    Also, to make the test pass. 'Connection.ensure' have been updated
    to have the same behavior for amqp and memory driver about
    kombu recoverable_errors. And the hostname and port of the memory
    driver are set to not fail when we print a log message.

    Closes bug: #1437902

    Change-Id: I20d133ac67b8a8a4c51d51b6a1b2369aa44ffe2f

Changed in oslo.messaging:
status: In Progress → Fix Committed
Changed in oslo.messaging:
status: Fix Committed → Fix Released
Revision history for this message
Markus Zoeller (markus_z) (mzoeller) wrote :

It looks like this only affected "oslo.messaging" and not Nova, that's why I switch the status to "Invalid".

Changed in nova:
status: Incomplete → Invalid
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.