[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?

-Pieter

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