Mehdi Abaakouk 286659a38b Don't reply when we known that client is gone
In case of a broker restart/failover a reply queue can be
unreachable for short period the IncomingMessage.send_reply
will block for 60 seconds in this case or until rabbit recovers.

But in case of the reply queue is unreachable because the
rpc client is really gone, we can have a ton of reply to send
waiting 60 seconds.
This leads to a starvation of connection of the pool
The rpc server take to much time to send reply, other rpc client will
raise TimeoutError because their don't receive their replies in time.

This changes introduces an object cache that stores already known gone
client to not wait 60 seconds and hold a connection of the pool
Keeping 200 last gone rpc client for 1 minute is enough
and doesn't hold to much memory.

This also don't raise anymore a frightening exception when we can't send reply
to the rpc client. But just logging a info about missing exchange and
a warning about unsend reply.

Closes-bug: #1460652

Change-Id: I928b30c9b5f9ee007532ff703e136640b0e8aaf4
2015-07-06 13:17:00 +03:00
2014-01-15 04:08:18 +00:00
2015-01-26 21:55:20 +00:00
2015-03-12 16:38:51 -07:00
2014-06-05 22:48:44 +02:00
2015-07-01 11:46:34 +00:00
2015-03-19 03:03:53 -07:00
2015-07-02 16:51:42 +03:00
2015-07-02 16:51:42 +03:00

Oslo Messaging Library

Latest Version

Downloads

The Oslo messaging API supports RPC and notifications over a number of different messaging transports.

Description
OpenStack library for messaging
Readme 36 MiB
Languages
Python 99.8%
Shell 0.2%