[zeromq-dev] Zyre Wi-Fi Rejoin Issue

Steve Rasmussen Steve.Rasmussen at RasSimTech.com
Thu Jun 5 17:32:49 CEST 2014


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.

Any ideas on a better approach to addressing this problem?

-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: Friday, May 30, 2014 2:14 PM
To: ZeroMQ development list
Subject: Re: [zeromq-dev] Zyre Wi-Fi Rejoin Issue

You can bruteforce this via the application, by calling zyre_stop() and then zyre_start(). However it should happen automatically inside zyre_node or perhaps even zbeacon, IMO.

On Fri, May 30, 2014 at 5:39 PM, Steve Rasmussen <Steve.Rasmussen at rassimtech.com> wrote:
> Thanks, both of you, for the feedback. I'm still troubleshooting and I'll focus on the zbeacon. I'll let you know as I make progress, and perhaps a patch.
> -Steve
>
>
> -----Original Message-----
> From: zeromq-dev-bounces at lists.zeromq.org 
> [mailto:zeromq-dev-bounces at lists.zeromq.org] On Behalf Of Arnaud 
> Loonstra
> Sent: Friday, May 30, 2014 11:07 AM
> To: ZeroMQ development list
> Subject: Re: [zeromq-dev] Zyre Wi-Fi Rejoin Issue
>
> Indeed, this is a known problem. There's also the problem when using multiple NIC's. I did a very simple workaround in Pyre which tries on e more time to connect. This is not enough though but I haven't had situations yet where this was a real showstopper. Then again I'm not using it in production yet.
>
> A patch would be welcome :) I'm willing to think along
>
> Rg,
>
> Arnaud
>
>
> On 05/30/2014 10:00 AM, Pieter Hintjens wrote:
>> This is (I think) a known issue with Zyre or rather zbeacon. When a 
>> device leaves and rejoins the wifi network, its interface can change, 
>> and its address can change. zbeacon and or zyre_node does not detect 
>> or handle this (yet). The best solution is IMO to detect the break 
>> and then destroy and recreate the beacon. It should not be necessary 
>> to take down the entire Zyre node, however it's possible commands 
>> will be lost during the break.
>>
>> On Thu, May 29, 2014 at 10:21 PM, Steve Rasmussen 
>> <Steve.Rasmussen at mvaero.com> wrote:
>>> I’m putting together a system that uses ZeroMQ  to communicate 
>>> between moving vehicles over Wi-Fi. I use Zyre to discover, make the 
>>> connections, and send the information.
>>>
>>>
>>>
>>> This all works well, but when the Wi-Fi connection is broken and is 
>>> reestablished the zyre entities, that were connected before the 
>>> break, do not reestablish high level, i.e. whisper, communications.
>>> They do exchange beacons and act like they are connected, but the 
>>> zyre commands, e.g. START, don’t get through.
>>>
>>>
>>>
>>> I’ve included some test results in the pastebin:
>>>
>>> http://pastebin.com/qYVHCEZP
>>>
>>>
>>>
>>> For the tests I modified the tools/zpinger program to continually 
>>> send out pings. The source is included in the pastebin. I ran my 
>>> modified zpinger on two laptops and a zlogger on one laptop. To 
>>> break the connection, I moved one laptop away until the zyre entity 
>>> exited and the Wi-Fi connection was broken. I then moved the laptop back in range to reestablish the connection.
>>> I’ve included logs in the pastebin.
>>>
>>>
>>>
>>> The two zyre entities did not reestablish high level communications.
>>> After one test, I started another modified zpinger, not in the logs, 
>>> and it connected, exchanged pings, with both original zyre entities.
>>>
>>>
>>>
>>> I’ll stop now to keep this short. I anyone has any ideas or needs 
>>> more information, please let me know.
>>>
>>>
>>>
>>> Thanks,
>>>
>>>
>>>
>>> Steve
>
>
> --
> w: http://www.sphaero.org
> t: http://twitter.com/sphaero
> g: http://github.com/sphaero
> i: freenode: sphaero_z25
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
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