-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Assertion failed: fetched (xrep.cpp:196) #38
Comments
I see this one as well. |
I get this with stock 2.0.7 as well as current git, so it doesn't seem to be related to the mentioned commit. As a workaround, setting the IDENTITY of the client (REQ/XREQ) socket makes the problem go away. Martin Sustrik is away until mid next-week, I will remind him to take a look at this when he gets back. |
The specific test case I linked to above is definitely triggered by this commit in my environment, as confirmed by git-bisect. Reverting that change from current git makes the test case succeed for me. Perhaps this is a race condition, or there are multiple ways to trigger the bug. |
In xrep::xrecv(), call all readers' check_read() to determine current_reader, then the identity is returned at first. The real messages are returned by successive xrecv calls. The above code assumes pipe's front message is a normal message. However it can be a DELIMITER message to indicate the termination of the pipe. In this case reader.read() return false (but check_read() returns true). It breaks the assumption and causes the assertion fail. |
I have fixed this in my private repo (http://github.com/hurtonm/zeromq2/commit/9daf6214dff8a2fe1d3bfadb5b4ab58bb38cf354). |
Looks fixed to me, thanks! |
Looks ok here too. Thanks! |
Thanks for reports. I have merged the fix into master now. |
updated INSTALL documentation as per pull request zeromq#37
Basic performance test tool
When a client of an XREP socket disconnects, this assertion fails. Code to reproduce to follow. According to git-bisect, the bug was introduced by commit 10c28c1:
The text was updated successfully, but these errors were encountered: