-
Notifications
You must be signed in to change notification settings - Fork 781
Dropped first frame on failed send #659
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I would suggest using |
Thanks @gummif. I think there's some subtle issues with zmq::send_multipart also. The rvalue reference strongly suggests I should use it as
in which case I can't retry since I've lost the message. However, despite the rvalue signature, I could do
and if I receive an unset optional response I would be able to safely retry. However, its possible to get an unset optional response in the following scenario if one isn't in debug mode
I think the following would allow for the ability to gracefully resend.
|
The The case you mention is guaranteed by libzmq, so it would be a bug in the API if that would happen. But might be pretty cheap to check as a sanity check. |
Uh oh!
There was an error while loading. Please reload this page.
I'm experiencing an unusual issue. Under high load, I'm seeing the first frame of a message that isn't the routing id sometimes vanish. I'm doing a blocking synchronous client using zmq_immediate in conjunction with zmq_sndtimeo. So, if the message can't be sent it returns false after a few tries. Something like this
In the send() function, its popping off the first part of the message, but it never restores the first message to the mulitpart_t if the read fails, which leads to retries failing
Would it be possible to restore the popped message so a retry can occur?
The text was updated successfully, but these errors were encountered: