Hi all,

For reasons that are not entirely clear to me, I am sometimes seeing
"Interrupted system call" from the recv on the REQ end of a
REQ-ROUTER-DEALER-REP socket chain on MacOS.  There is no Ctrl+c/SIGTERM or
anything obvious like that happening.  The REQ socket use is blocking send
followed by blocking receive with timeout socket options set.

If the recv fails due to EINTR, I believe the state machine of REQ/REP will
not allow another recv, is that correct and is there any way to gracefully
handle this condition?  Would I need to switch to polling instead of
blocking with timeout?

The REP worker is getting the message and sending a reply, so it seems only
the requester is seeing this as a failure and not due to network
conditions.  For failures due to timeout, we just tear down the socket and
reconnect for the next request, but in this case I expect there is a valid
reply to receive.

-Jake
_______________________________________________
zeromq-dev mailing list
[email protected]
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to