[zeromq-dev] "Who said that?"

Oliver Smith oliver at kfs.org
Tue Dec 21 19:56:32 CET 2010

Martin Sustrik said the following on 12/21/2010 2:08 AM:
> On 12/20/2010 09:21 PM, Oliver Smith wrote:
>> Martin Sustrik said the following on 12/17/2010 5:15 AM:
>>> By bad data you mean malformed 0MQ frames? With 2.1 those are
>>> discarded silently and the connection is closed. We should also report
>>> the problem via sys://log.
>> No, it's probably data getting reused before it is transmitted - i.e. my
>> issue, but it's very hard to track down because I don't know which of
>> the many nodes is sending it :) The only way I can track that down is to
>> send everything to separate ports and collate at the receiver, until I'm
>> done debugging, and then reunify all of them again.
> Ok. So what's needed is message tracking for debugging purposes. Fair 
> enough. So what about, for example, writing a simple wrapper over 
> zmq_send() that would attach a message part containing identity of the 
> particular node to every message?
Ah - I was arguing this particular incident as one of several reasons 
why it might be beneficial to have access to the prior-hop information 
above (i.e. in the application) the zmq_recv().

Another being WAN-transit cases where you do want to avoid exposing any 
form of internal network-state information from the sender into the 
packet beyond what is already deducible.

That is: you don't actually care what the IP address and port of the 
last-sender/forwarder are, just that one is different than the other.

[Image: An application calling recv() on a single zmq::socket which is 
abstracting multiple bsd::socket or inproc sockets connected to any 
number/type of sources]

Another use case: cache efficiency.

lastSrc = None
cache = None
while True:
     msg = zmqSock.recv()
     src   = msg.socketMuxDistinguisher()
     if src != lastSrc:
         cache = cacheForSrc[lastSrc]
     doWork(msg, cache)

     if itsTimeForACacheCheck():

It could be made exceedingly clear that this is NOT any form of a 
source/return address by allowing the user to provide the local 

I'm not proposing, in any way or form, that this provide a value that 
the user ever pass to any ZMQ function.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20101221/c3956832/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: zmqid.jpg
Type: image/jpeg
Size: 33976 bytes
Desc: not available
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20101221/c3956832/attachment.jpg>

More information about the zeromq-dev mailing list