oslo.messaging does not redeclare exchange if it is missing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mirantis OpenStack |
Fix Released
|
Critical
|
Kirill Bespalov |
Bug Description
Version: 9.0
Steps to reproduce:
1. Create a load on OpenStack, trigger restart of one of RabbitMQ nodes (exact reason unknown).
2. Observe a lot of
operation basic.publish caused a channel exception not_found: "no exchange 'reply_
entries in RabbitMQ log for various reply queues.
Looking earlier in the RabbitMQ log one can found
2016-08-
2016-08-
The following stacktrace corresponds to the later message in nova-compute.log: http://
It seems that during RabbitMQ failover we might end up with declared queue, which is not bound to an exchange (there an exception listed in paste above is thrown). Later oslo.messaging successfully starts consuming from that queue, since the queue exists, but it is useless because it is not bound to an exchange.
You may find the whole logs containing snippets from above attached - nova-compute.log and rabbitmq.log.3.gz
tags: | added: area-oslo |
Changed in mos: | |
importance: | Undecided → High |
assignee: | nobody → MOS Oslo (mos-oslo) |
milestone: | none → 9.1 |
status: | New → Confirmed |
Changed in mos: | |
assignee: | MOS Oslo (mos-oslo) → Kirill Bespalov (k-besplv) |
Changed in mos: | |
status: | Confirmed → Fix Committed |
I'm raising the importance.
That kind of bug will create whole-cloud outage cases.