[zeromq-dev] First part of a multipart message

Chuck Remes cremes.devlist at mac.com
Thu Nov 17 18:47:01 CET 2011


On Nov 17, 2011, at 11:31 AM, Emmanuel Taurel wrote:

> Hello all,
> 
> I am using Zmq 3.0 on a Linux box.
> I am using the PUB/SUB framework.
> My messages are multi part messages with 4 parts.
> In my test system, the message is sent on a human action (a mouse click)
> 
> I notice that from "time to time", I am loosing the first part of the  
> multi part message. Wireshark confirm this. When this happens, it is  
> always the first message exchanged from the publisher to the  
> subscriber. Following messages works fine.
> 
> I have added some tracing info and tried to do some debugging.
> I see the method zmq::pipe_t::write() called 4 times which I guess are due
> to the four part of the multi part message
> I see the execution of the encoder::get_data() message which I guess
> retrieve data from the queue and send then to the BSD socket.
> When I am loosing the first part of the message, this get_data()  
> method extract only three chunk of data. Each chunk is 2 bytes for ZMQ  
> protocol (I guess) plus the message part data.
> If I compare with correct transmission of the multi-part message, it  
> should extract 4 chunks of data instead of 3.
> 
> Therefore, I guess that the first message part is lost somewhere  
> between this write() method of the pipe class and this  
> encoder::get_data() method.
> 
> What do you think?

I'm pretty sure this is a known issue. See:

https://zeromq.jira.com/browse/LIBZMQ-248

and

https://zeromq.jira.com/browse/LIBZMQ-270




More information about the zeromq-dev mailing list