[zeromq-dev] Weird whisper messages arriving with Pyre

Axel Voitier axel.voitier at gmail.com
Mon Dec 21 21:24:29 CET 2015


I observe an odd behaviour in my application which seems to relate to Pyre
whisper messages being malformatted (incomplete and/or mixed).

It is still difficult to reproduce as it happens randomly and when having
quite some traffic between the two nodes.

Here is an example:

> DEBUG:isac.transport.pyre_node:(alidron-archiver-influxdb) received stuff:
> ['WHISPER', '\xe7\x19`\xf2a\xddM\xe1\x85\x1e\xe6s~\xd6@\x0b',
> 'alidron-openzwave-controller', 'SHOUT']

It is quite strange to get a 'SHOUT' in a whisper message, knowing this is
not the kind of payload my application send.

In another case (actually happened during another run), on the other node:

> Exception in thread Thread-1:
> Traceback (most recent call last):
>   File "/usr/local/lib/python2.7/threading.py", line 801, in
> __bootstrap_inner
>     self.run()
>   File "/usr/local/lib/python2.7/threading.py", line 754, in run
>     self.__target(*self.__args, **self.__kwargs)
>   File "/usr/local/lib/python2.7/site-packages/pyre/zactor.py", line 57,
> in run
>     self.shim_handler(*self.shim_args, **self.shim_kwargs)
>   File "/usr/local/lib/python2.7/site-packages/pyre/pyre_node.py", line
> 52, in __init__
>     self.run()
>   File "/usr/local/lib/python2.7/site-packages/pyre/pyre_node.py", line
> 504, in run
>     self.recv_api()
>   File "/usr/local/lib/python2.7/site-packages/pyre/pyre_node.py", line
> 182, in recv_api
>     peer_id = uuid.UUID(bytes=request.pop(0))
>   File "/usr/local/lib/python2.7/uuid.py", line 146, in __init__
>     raise ValueError('bytes is not a 16-char string')
> ValueError: bytes is not a 16-char string

Here, line 182 of pyre_node.py is actually trying to read the peer_id off
the WHISPER message but seems to be reading something wrong?!

In several runs the context is not the same (not the same "transaction"
going on if you want). I can provide the full logs if you want, but in
debug level it's about 13.2MB for three runs...

Would you have an idea about what is going on? I though about too much
traffic going over the HWM of the various socket involved here and there.
But I already limit the rate of transactions by pausing 10ms between each.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20151221/e6ff6e21/attachment.htm>

More information about the zeromq-dev mailing list