Taskmanager "prepare" message is lost if guestagent doesn't create a queue on time

Bug #1376569 reported by Sergey Gotliv
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack DBaaS (Trove)
Expired
Medium
Unassigned

Bug Description

It seems like there is a race in the instance creating process.

1. Taskmanager is sending request to Nova to create a VM instance.
2. Right after Nova's response, taskmanager sending "prepare" message to the guestagent.{guest_id} queue.

Meantime in parallel between steps 1 and 2, Trove guest agent is booting and creating a queue I mentioned above.

The problem is that if taskmanager(publisher) sent a "prepare" before quest(consumer) created a queue then this message may be lost depends on the message broker.

For example, according to RabbitMQ dosumentation:

"Next, before sending we need to make sure the recipient queue exists. If we send a message to non-existing location, RabbitMQ will just trash the message."

Sergey Gotliv (sgotliv)
Changed in trove:
assignee: nobody → Sergey Gotliv (sgotliv)
Denis M. (dmakogon)
Changed in trove:
status: New → Confirmed
importance: Undecided → High
milestone: none → kilo-1
Revision history for this message
Amrith Kumar (amrith) wrote :

Updating importance to "Medium" (bugscrub, 2014-10-23)

Changed in trove:
importance: High → Medium
Changed in trove:
milestone: kilo-1 → next
Revision history for this message
Sushil Kumar (sushil-kumar2) wrote :

https://github.com/openstack/trove/blob/master/trove/guestagent/api.py#L233 shows that prepare method is call with _cast_with_consumer which creates a new queue first and then passes the message, so there is not left a chance of putting a message to a non-existent queue.

Changed in trove:
status: Confirmed → Incomplete
Revision history for this message
Amrith Kumar (amrith) wrote :

This is most likely a duplicate of 1511623. The stated circumstances in this bug have not occurred in a long time and this bug has not been updated either.

I'm marking it as such.

Changed in trove:
milestone: next → none
assignee: Sergey Gotliv (sgotliv) → nobody
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for OpenStack DBaaS (Trove) because there has been no activity for 60 days.]

Changed in trove:
status: Incomplete → Expired
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.