[zeromq-dev] Can't get ZMQ_REQ_RELAXED to run

Christian Kamm kamm at incasoftware.de
Tue Nov 19 15:10:50 CET 2013


Thanks for the data. I have some more questions, observations:

* So it's really the very first send() call on the REQ socket that
fails? I'm asking because REQ_RELAXED has no effect at all on the first
send. Please double check!
* From the stacktrace, it looks like you're running into the send
timeout (which is probably left at the default, infinite?) because there
are no active pipes.
* 'No active pipe' could be caused by REQ_RELAXED terminating the pipe
where no message was received in time. But a new one should come up
automatically. Which protocol are you using?

Regards,
Christian


On 11/19/2013 02:49 PM, Björn Kuhlbrodt wrote:
> Hi Christian
> 
> Well, it's stuck in zmq::mailbox_t::recv {int rc = signaler.wait
> (timeout_);}. Note that this is the first message of a newly created
> socket I'trying to queue. The architecture is a bit more complex, see
> my reply to Pieters mail. Ah, also note that the send fail only in
> about 90% of the times I start the application. In the other 10% it
> runs just fine. Also note that everything is fine once I set
> ZMQ_REQ_RELAXED to false.
> 
> I also tried to make a minimal version that I could post, but the
> minimal version works of course...
> 
> Best regards Björn
> 
> 
> 
> libzmq.dll!zmq::signaler_t::wait(int timeout_)  Line 213	C++
>> libzmq.dll!zmq::mailbox_t::recv(zmq::command_t * cmd_, int
>> timeout_)  Line 72 + 0xb bytes	C++
> libzmq.dll!zmq::socket_base_t::process_commands(int timeout_, bool
> throttle_)  Line 901	C++ 
> libzmq.dll!zmq::socket_base_t::send(zmq::msg_t * msg_, int flags_)
> Line 722 + 0xd bytes	C++ libzmq.dll!zmq_msg_send(zmq_msg_t * msg_,
> void * s_, int flags_)  Line 593 + 0x1b bytes	C++
> 
> ------------------------------------------------------------------------------------------------------
>
> 
-----Original Message-----
> From: zeromq-dev-bounces at lists.zeromq.org
> [mailto:zeromq-dev-bounces at lists.zeromq.org] On Behalf Of Christian
> Kamm Sent: Dienstag, 19. November 2013 06:11 To: ZeroMQ development
> list Subject: Re: [zeromq-dev] Can't get ZMQ_REQ_RELAXED to run
> 
> A stack trace of the process when zmq_msg_send() blocks could already
> be telling. It sounds like it's getting stuck in either
> pipe::terminate() or dealer::xrecv()...
> 
> Cheers, Christian
> 
> Pieter Hintjens <ph at imatix.com> wrote:
> 
>> Hi Björn,
>> 
>> The best thing when it comes to specific functionalities like this
>> is a minimal test case that shows the problem.
>> 
>> -Pieter
>> 
>> On Mon, Nov 18, 2013 at 9:09 AM, Björn Kuhlbrodt 
>> <bjoern.kuhlbrodt at gpsolar.com> wrote:
>>> Hello
>>> 
>>> I' trying to use the new (4.0.1) ZMQ_REQ_RELAXED in C++ with
>>> VS2010 (and the standard C-Binding from the 0MQ main site), but
>>> keep failing.
>>> 
>>> What I have: One context with two ZMQ_REQ sockets in two
>>> different threads, one binds and answers to REQs, one connects
>>> and sends REQs. This runs fine and nice until one system crashes
>>> before answering a REQ - a known Problem of the REQ-REP.
>>> 
>>> What I tried: I'm not too eager to kill the context to get the
>>> REQ-REP running again, because that would kill my other socket
>>> too. The new ZMQ_REQ_RELAXED came in very handy, just fit to
>>> solve the problem.
>>> 
>>> BUT: Now the zmq_msg_send(...)-Method fails to return after a few
>>> packages (or even for the first packet) while the client is up
>>> and waiting for packages, yes even actively communicating with
>>> the server over the other socket. I tried ZMQ_REQ_CORRELATE on
>>> and off - doesn't make a change. Tried ZMQ_REQ_RELAXED off again
>>> - everything works (except in crash-case).
>>> 
>>> So my question: Anyone here tried the ZMQ_REQ_RELAXED? Any idea?
>>> I'm willing to post code, but I'd need to extract the crucial
>>> parts, which could take a while.
>>> 
>>> Regards Bjorn
>>> 
>>> 
>>> 
>>> 
>>> Dr. Björn Kuhlbrodt Senior Software Developer GP Inspect GmbH
>>> 
>>> Tel: +49 89 750778 4729 Fax: +49 89 750778 4710 Mail:
>>> bjoern.kuhlbrodt at gpsolar.com
>>> 
>>> GP Inspect GmbH | Hainbuchenring 9-11 | 82061 Neuried |
>>> Deutschland Geschäftsführer | Christian Probst, Dr. Eric Rüland,
>>> Enis Ersü, Martin Heinrich Amtsgericht München | HRB 173887
>>> 
>>> A company of ISRA VISION Group
>>> 
>>> ---------------------------------------------------------------------
>>>
>>> 
--------------------------------- This e-mail may contain material
>>> that is confidential, privileged and for the sole use of the
>>> intended recipient. Any review, reliance or distribution by
>>> others or forwarding without express permission is strictly
>>> prohibited. If you are not the intended recipient, please contact
>>> the sender and delete all copies. GP Inspect GmbH, ISRA VISION
>>> AG, its branches and subsidiaries herewith exclude any liability
>>> for third-party information recognizably contained in this email
>>> or its attachments. Third-party information does not necessarily
>>> reflect the opinion of GP Inspect GmbH or ISRA VISION AG. 
>>> ---------------------------------------------------------------------
>>>
>>> 
---------------------------------
>>> WWW.GPSOLAR.COM
>>> 
>>> WWW.ISRAVISION.COM 
>>> ---------------------------------------------------------------------
>>>
>>> 
---------------------------------
>>> _______________________________________________ zeromq-dev
>>> mailing list zeromq-dev at lists.zeromq.org 
>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> 
>> 
>> 
>> -- - Pieter Hintjens CEO of iMatix.com Founder of ZeroMQ community 
>> blog: http://hintjens.com 
>> _______________________________________________ zeromq-dev mailing
>> list zeromq-dev at lists.zeromq.org 
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> _______________________________________________ zeromq-dev mailing
> list zeromq-dev at lists.zeromq.org 
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev 
> _______________________________________________ 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