Spurious message when ROUTER connects

Description

When ROUTERs connect, they get messages that shouldn't exist.

Case 1: DEALER binds, ROUTER connects. poll(ROUTER, POLLIN) indicates that a message is waiting, but it never arrives.

Case 2: two DEALERs bind, and ROUTER connects to both. poll(ROUTER, POLLIN) indicates that a message is waiting, and recv() will return the two-part message with the IDENTITY of the second DEALER.

Neither problem occurs when ROUTER is the binding socket.

Environment

OSX 10.7.2, pyzmq 2.1dev

Attachments

6

Activity

Show:

Martin Sustrik December 17, 2011 at 10:17 PM

Great! I'm resolving the issue.

Min RK December 17, 2011 at 4:06 PM

Indeed it appears fixed. What's more, the entire pyzmq test suite is passing. Hooray!

Thanks. Should I mark this as resolved, or leave that to you?

Martin Sustrik December 17, 2011 at 9:20 AM

The fix is committed to the trunk. Can you please retest? (Sorry for the delay.)

Martin Sustrik December 17, 2011 at 9:19 AM

C++ test case attached.

Min RK November 15, 2011 at 5:11 PM

I still see rep.cpp:75 in the pyzmq test suite with latest libzmq, and is easily reproducible by polling prior to rep.recv():

Fixed

Details

Assignee

Reporter

Labels

Components

Affects versions

Priority

Created November 8, 2011 at 1:00 AM
Updated December 17, 2011 at 10:17 PM
Resolved December 17, 2011 at 10:17 PM