[zeromq-dev] Zyre Wi-Fi Rejoin Issue

Steve Rasmussen Steve.Rasmussen at RasSimTech.com
Fri Jun 6 16:12:12 CEST 2014


> In principle if the connection is re-established there should be no new
HELLO message sent. 

This problem occurs after the Wi-Fi connection has been down long enough for
the peers to remove each other. When the connection come back up, as I
understand it, the HELLO message is necessary to kick-off handshaking. 

> Can you find a way to reproduce the problem easily?
The easiest method that I've found is using a modified version of the
zpinger tool on two laptops. The modified zpinger tool is set up to send a
whisper, after a time delay, anytime it receives a whisper from a peer. I
either turn the Wi-Fi adapter off/on or move the laptop out of range to
perform the test.

It seems like this may have something to do with the sockets maintaining the
TCP/IP connection during the break and then being in a bad state when the
Wi-Fi connection comes back up. Is this possible? If so is there some way to
reset the TCP/IP connection? 

> Thanks for taking the time to analyse the problem.

I need this capability for the system I'm developing. Thank you and your
colleagues for ZeroMQ, CZMQ, Zyre, ...

Regards,

Steve



-----Original Message-----
From: zeromq-dev-bounces at lists.zeromq.org
[mailto:zeromq-dev-bounces at lists.zeromq.org] On Behalf Of Pieter Hintjens
Sent: Thursday, June 5, 2014 5:22 PM
To: ZeroMQ development list
Subject: Re: [zeromq-dev] Zyre Wi-Fi Rejoin Issue

On Thu, Jun 5, 2014 at 5:32 PM, Steve Rasmussen
<Steve.Rasmussen at rassimtech.com> wrote:

> The problem seems to be with the TCP/IP connection not the beacon. After a
network break, the beacon reestablishes the connection, but no data is
getting through the tcp/ip connection.
> It looks as if there are messages that are being buffered before the break
and then delivered after. This prevents the "HELLO" message from getting
through. I've tried various things, but the closest the I've come, so far,
is to keep removing the peer until it is reported as being ready. I'm doing
this in the "zyre_node_require_peer" function. If a peer exists I check to
see if it is ready, "zyre_peer_ready" and if not, I remove the peer,
"zyre_node_remove_peer". This seems to fix the problem that I'm having, but
it seems a little kludgie.

Thanks for taking the time to analyse the problem.

In principle if the connection is re-established there should be no new
HELLO message sent. Can you find a way to reproduce the problem easily?

Feel free to make a pull request with your change anyhow. I'm reworking a
lot of this code atm so will try to include your change if I can reproduce
the error.

-Pieter
_______________________________________________
zeromq-dev mailing list
zeromq-dev at lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev




More information about the zeromq-dev mailing list