[zeromq-dev] Water marks/pipe/activate_write problem

Pieter Hintjens ph at imatix.com
Tue May 6 18:19:18 CEST 2014

Hi Victor,

Can you reproduce this with a minimal test case?


On Tue, May 6, 2014 at 5:56 PM, Victor Luchitz <vluchits at gmail.com> wrote:
> Hello,
> I've been trying to build semi-reliable messaging infrastructure around ZMQ
> 4.0.3 and mostly got everything working except for a few things.
> I'm currently using PUSH/PULL model to pass messages between client (PUSH)
> and server(PULL) in non-blocking fashion.
> The weird behavior that I'm observing is that in my case the PUSH socket
> never receives the command_t::activate_write command from the other end of
> the pipe. The low water mark is set on the PULL socket and I _do_ see the
> code path in pipe.cpp being triggered:
> send_activate_write (peer, msgs_read);
> on the server. However, it seems that the command goes elsewhere locally.
> That in turns leads us to peers_msgs_read equalling to 0 in
> zmq::pipe_t::check_write() on the PUSH side and eventually reaching the HWM
> even though the messages are properly communicated to the other end of the
> pipe. That in turns causes messages to be dropped and/or ZMQ reserving
> excessive amounts of RAM.
> Sorry if it all seems so confusing but that's the best explanation I can
> come up with at the moment.
> --
> Best regards,
>  Victor Luchitz
> _______________________________________________
> 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