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