oslo.messaging/oslo_messaging/_drivers/zmq_driver/client
ozamiatin 4a1679450d [zmq] Dynamic connections send failure
For dynamic connections it is crucial to close connection
and not to have hanging sockets either we have sent message
successfully or not.

eventlet.green.zmq by default blocks the calling thread on sending message
when connection was not established yet (which is correct DEALER
socket behavior though), but socket cannot be closed when we hang on
sending forever (if we never get the valid host to connect).

eventlet also shields EAGAIN exception in default (blocking) sending mode
so we need to use async zmq.NOBLOCK flag to receive this exception
and hanlde it in our own way to not block forever.

Change-Id: Ib561e061c4b20644213c059a8e8d0efd225edea1
Closes-Bug: #1658913
Closes-Bug: #1663459
2017-02-11 05:25:53 +02:00
..
publishers [zmq] Dynamic connections send failure 2017-02-11 05:25:53 +02:00
__init__.py Notifier implementation 2015-08-05 13:35:24 +03:00
zmq_ack_manager.py [zmq] Send fanouts without pub/sub in background 2016-11-24 11:27:50 +00:00
zmq_client.py [zmq] Properly analyse `use_dynamic_connections` option 2017-02-06 12:06:59 +02:00
zmq_client_base.py [zmq] Restore static direct connections 2016-12-24 04:26:19 +02:00
zmq_publisher_manager.py [zmq] Send fanouts without pub/sub in background 2016-11-24 11:27:50 +00:00
zmq_receivers.py [zmq] Support message versions for rolling upgrades 2016-12-05 11:50:01 +00:00
zmq_request.py [zmq] Support message versions for rolling upgrades 2016-12-05 11:50:01 +00:00
zmq_response.py [zmq] Support message versions for rolling upgrades 2016-12-05 11:50:01 +00:00
zmq_routing_table.py [zmq] Refactor make `zmq_address.target_to_key` a universal method 2016-12-31 01:02:52 +02:00
zmq_senders.py [zmq] Dynamic connections send failure 2017-02-11 05:25:53 +02:00
zmq_sockets_manager.py [zmq] Distinguish Round-Robin/Fanout socket sending mode 2017-01-11 13:26:16 +02:00