Pieter,

I am not sure a "reproducible case" makes sense.

Analyzing zmq sources, one can see pretty clear comment
==
        //  Writes a message to the underlying pipe. Returns false if the
        //  message cannot be written because high watermark was reached.
==

This is about writer_t::write.

It is what happened in my case.
If HWM reached sending X response, the application crashes.

==
    //  Push the message into the pipe. If there's no out pipe, just drop it.
    if (current_out) {
        bool ok = current_out->write (msg_);
        zmq_assert (ok);
        if (!more_out) {
            current_out->flush ();
            current_out = NULL;
        }
    }
==

Actually it is not too difficult to imagine why this assert was put in the code.
The problem is I don't see any workaround for my application just now.


Thanks.

28.02.2011, 15:38, "Pieter Hintjens" <[email protected]>:
> 2011/2/28 Ilja Golshtein <[email protected]>;:
>
>>  [The almost only] I can say for sure the issue happened under heavy load.
>>  I cannot reproduce it with logging enabled so far.
>>
>>  I definitely not use a zmq socket from more then one thread.
>
> We'll need a reproducible case to fix it... ideally a case we can
> rewrite in C or C++ to isolate exactly what's going wrong.
>
> -Pieter
> _______________________________________________
> zeromq-dev mailing list
> [email protected]
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

-- 
Best regards,
Ilja Golshtein.
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to