yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #24179
[Bug 1386810] [NEW] Keystone should not create a queue. Or it should empty the queue
Public bug reported:
If you enable "messaging" keystone creates a queue "notificaiton.info"
and sends a message with the routing key "notification.info" to the
queue.
As per rabbitmq, producer sends a message to an "Exchange" and
Consumer creates a queue and attaches to the exchange to receve the
message. Producer never creates a queue unless it follows RPC semantics
to get a response.
Also keystone clients notificaiton consumption pattern is different
from other services such as nova. Keystone consumers needs exclusive
access to the queue.
Consider the followign scenario where "glance" , "nova" is interrested
in "project.deleted" event.
Case 1: Consumer doesn't create a queue instead takes the message from
"notificaiton.info" queue created by keystone
1) If glance picks up the "project.deleted" event, then the
message is lost. Nova can't get that message since the queue is not
exclusive. Basically only one consumer can get the message if they
connect to "notification.info" queue
Case 2: Consumer creates "exclusive" queue and attaches to the exchanges
1) Glance creates a queue with random name and attaches to the exchange saying it is intersted in message with routing key "notification.info"
2) Nova creates a queue with random name and attaches to the exchange saying it is intersted in message with routing key "notification.info"
3) Since the queues are exclusive, each will get "project.deleted" event.
4) This is the general consumtion pattern for "topic" exchange
5) But no one is emptying the message from "notification.info" queue that is created by "keystone". It will keep on accumulating.
So there are 2 ways to fix it. EIther don't create a queue or add an listener which empties the queue.
Oslo by default creates a queue which is applicable to nova but not to
keystone.
https://github.com/openstack/oslo.messaging/blob/master/oslo/messaging/_drivers/impl_rabbit.py#L411
** Affects: keystone
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to Keystone.
https://bugs.launchpad.net/bugs/1386810
Title:
Keystone should not create a queue. Or it should empty the queue
Status in OpenStack Identity (Keystone):
New
Bug description:
If you enable "messaging" keystone creates a queue
"notificaiton.info" and sends a message with the routing key
"notification.info" to the queue.
As per rabbitmq, producer sends a message to an "Exchange" and
Consumer creates a queue and attaches to the exchange to receve the
message. Producer never creates a queue unless it follows RPC
semantics to get a response.
Also keystone clients notificaiton consumption pattern is different
from other services such as nova. Keystone consumers needs exclusive
access to the queue.
Consider the followign scenario where "glance" , "nova" is interrested
in "project.deleted" event.
Case 1: Consumer doesn't create a queue instead takes the message
from "notificaiton.info" queue created by keystone
1) If glance picks up the "project.deleted" event, then the
message is lost. Nova can't get that message since the queue is not
exclusive. Basically only one consumer can get the message if they
connect to "notification.info" queue
Case 2: Consumer creates "exclusive" queue and attaches to the exchanges
1) Glance creates a queue with random name and attaches to the exchange saying it is intersted in message with routing key "notification.info"
2) Nova creates a queue with random name and attaches to the exchange saying it is intersted in message with routing key "notification.info"
3) Since the queues are exclusive, each will get "project.deleted" event.
4) This is the general consumtion pattern for "topic" exchange
5) But no one is emptying the message from "notification.info" queue that is created by "keystone". It will keep on accumulating.
So there are 2 ways to fix it. EIther don't create a queue or add an listener which empties the queue.
Oslo by default creates a queue which is applicable to nova but not
to keystone.
https://github.com/openstack/oslo.messaging/blob/master/oslo/messaging/_drivers/impl_rabbit.py#L411
To manage notifications about this bug go to:
https://bugs.launchpad.net/keystone/+bug/1386810/+subscriptions
Follow ups
References