On Wed, Feb 16, 2011 at 9:31 AM, Martin Sustrik <[email protected]> wrote:

> Here's more info about the problem. It's a multi-faceted issue, so bear
> with me, please...

So we found, yesterday, one reproducible way in 0MQ/2.1.1 (master) to
cause any node to die with this assertion failure
(https://github.com/zeromq/zeromq2/issues/165/#comment_779428).

The scenario has a server S and two clients C1 and C2. C1 connects to
S using a durable socket (specifies an identity before connection). C2
attempts to connect using the same durable socket. S forces C2 to
disconnect. C2 then appears to repeat the connection attempt. S's
mailbox fills with reconnection commands, forcing it to grow, and
eventually killing S.

Unexpectedly, setting the ZMQ_RECONNECT_IVL and ZMQ_RECONNECT_IVL_MAX
options on the C1 and C2 sockets (to a value like 1 second) does not
make any difference.

Further the ZMQ_RECONNECT_IVL default is documented as 100msec, yet
the test case shows many thousands of reconnect attempts per second.

Attempting to solve this by modifying (fixing?) the clients'
reconnection strategy would leave nodes vulnerable to a quite trivial
TCP attack, as well as malconfigured or older clients.

-Pieter
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to