Logical error in blockless fanout of zmq

The blockless fanout doesn't take effect and it
only processes the FIRST one by returning after the first loop.

Change-Id: Iad071ab455e36be7b26637b286ca9f83fea4a019
Closes-Bug: #1300539
This commit is contained in:
Li Ma 2014-03-31 19:00:41 -07:00
parent 06c0366c6a
commit de2de36a4a
1 changed files with 7 additions and 6 deletions

View File

@ -742,17 +742,18 @@ def _multi_send(method, context, topic, msg, timeout=None,
raise rpc_common.Timeout(_("No match from matchmaker."))
# This supports brokerless fanout (addresses > 1)
return_val = None
for queue in queues:
(_topic, ip_addr) = queue
_topic, ip_addr = queue
_addr = "tcp://%s:%s" % (ip_addr, conf.rpc_zmq_port)
if method.__name__ == '_cast':
eventlet.spawn_n(method, _addr, context,
_topic, msg, timeout, envelope,
_msg_id)
return
return method(_addr, context, _topic, msg, timeout,
envelope, allowed_remote_exmods)
_topic, msg, timeout, envelope, _msg_id)
else:
return_val = method(_addr, context, _topic, msg, timeout, envelope)
return return_val
def create_connection(conf, new=True):