RabbitMQ connections lack heartbeat or TCP keepalives
Bug #856764 reported by
Rafi Khardalian
This bug affects 51 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ceilometer |
Invalid
|
High
|
Unassigned | ||
Icehouse |
Fix Released
|
High
|
Bogdan Dobrelya | ||
Cinder |
Invalid
|
Undecided
|
Ivan Kolodyazhny | ||
Mirantis OpenStack |
Fix Committed
|
High
|
Alexei Kornienko | ||
OpenStack Compute (nova) |
Invalid
|
High
|
Unassigned | ||
oslo.messaging |
Fix Released
|
Critical
|
Mehdi Abaakouk | ||
oslo.messaging (Ubuntu) |
Fix Released
|
High
|
Unassigned |
Bug Description
There is currently no method built into Nova to keep connections from various components into RabbitMQ alive. As a result, placing a stateful firewall (such as a Cisco ASA) between the connection can/does result in idle connections being terminated without either endpoint being aware.
This issue can be mitigated a few different ways:
1. Connections to RabbitMQ set socket options to enable TCP keepalives.
2. Rabbit has heartbeat functionality. If the client requests heartbeats on connection, rabbit server will regularly send messages to each connections with the expectation of a response.
3. Other?
Changed in nova: | |
importance: | Undecided → Wishlist |
status: | New → Confirmed |
Changed in oslo: | |
assignee: | nobody → Kiall Mac Innes (kiall) |
status: | New → In Progress |
Changed in oslo: | |
status: | Triaged → In Progress |
Changed in oslo: | |
milestone: | none → havana-2 |
status: | Fix Committed → Fix Released |
Changed in oslo: | |
status: | Fix Released → Triaged |
Changed in oslo: | |
milestone: | havana-2 → 2013.2 |
milestone: | 2013.2 → none |
Changed in oslo.messaging: | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in oslo.messaging: | |
importance: | High → Critical |
Changed in oslo: | |
assignee: | Kiall Mac Innes (kiall) → nobody |
Changed in oslo.messaging: | |
assignee: | Nicolas Simonds (nicolas.simonds) → James Page (james-page) |
tags: | added: havana-backport-potential |
Changed in ceilometer: | |
status: | New → Confirmed |
Changed in neutron: | |
assignee: | nobody → Bogdan Dobrelya (bogdando) |
Changed in heat: | |
assignee: | nobody → Bogdan Dobrelya (bogdando) |
Changed in neutron: | |
status: | Confirmed → In Progress |
Changed in heat: | |
status: | Confirmed → In Progress |
Changed in ceilometer: | |
status: | Confirmed → New |
Changed in ceilometer: | |
assignee: | nobody → Bogdan Dobrelya (bogdando) |
status: | New → In Progress |
Changed in ceilometer: | |
importance: | Undecided → High |
milestone: | none → 2014.1.1 |
Changed in ceilometer: | |
milestone: | 2014.1.1 → none |
tags: | removed: in-stable-icehouse |
Changed in oslo: | |
assignee: | nobody → Bogdan Dobrelya (bogdando) |
status: | Triaged → In Progress |
Changed in neutron: | |
assignee: | Bogdan Dobrelya (bogdando) → nobody |
Changed in heat: | |
status: | In Progress → Confirmed |
assignee: | Bogdan Dobrelya (bogdando) → nobody |
Changed in ceilometer: | |
assignee: | Bogdan Dobrelya (bogdando) → nobody |
Changed in fuel: | |
milestone: | none → 5.1 |
importance: | Undecided → High |
status: | New → Confirmed |
Changed in mos: | |
assignee: | nobody → MOS Oslo (mos-oslo) |
importance: | Undecided → High |
milestone: | none → 5.1 |
status: | New → Confirmed |
Changed in mos: | |
milestone: | 5.1 → 5.0.1 |
Changed in mos: | |
assignee: | MOS Oslo (mos-oslo) → Alexei Kornienko (alexei-kornienko) |
Changed in fuel: | |
assignee: | nobody → Fuel Library Team (fuel-library) |
Changed in oslo: | |
assignee: | Bogdan Dobrelya (bogdando) → nobody |
Changed in fuel: | |
assignee: | Fuel Library Team (fuel-library) → MOS Oslo (mos-oslo) |
no longer affects: | fuel |
Changed in mos: | |
status: | Confirmed → Fix Committed |
Changed in mos: | |
status: | Fix Committed → In Progress |
Changed in mos: | |
status: | In Progress → Fix Committed |
no longer affects: | oslo-incubator |
Changed in cinder: | |
status: | New → Confirmed |
Changed in mos: | |
status: | Fix Committed → Incomplete |
Changed in ceilometer: | |
status: | In Progress → Invalid |
Changed in mos: | |
status: | Incomplete → Fix Committed |
Changed in heat: | |
assignee: | nobody → Deliang Fan (vanderliang) |
Changed in oslo.messaging: | |
milestone: | none → next-kilo |
Changed in oslo.messaging: | |
milestone: | 1.7.0 → none |
milestone: | none → next-kilo |
Changed in oslo.messaging: | |
milestone: | 1.8.0 → next-liberty |
Changed in cinder: | |
assignee: | nobody → Ivan Kolodyazhny (e0ne) |
Changed in heat: | |
assignee: | Deliang Fan (vanderliang) → nobody |
Changed in oslo.messaging: | |
milestone: | next-liberty → 1.8.1 |
status: | Fix Committed → Fix Released |
tags: | removed: havana-backport-potential in-stable-icehouse in-stable-kilo |
no longer affects: | heat |
Changed in oslo.messaging (Ubuntu): | |
importance: | Undecided → High |
no longer affects: | neutron |
For the solution 2 (heartbeat functionality) we need to use another amqp client (for example pika), at this moment the python-amqplib doesn't implement the heartbeat.