Hi,

This was a big from earlier this summer that I am still seeing. I am
observing an assert error in line rep.cpp:232 when connecting a REP
socket to bound XREQ socket.

I guess my first question is this:  Is this combination of sockets
supported?  That is, should this work?

Here is a description of when it shows up:

The following is observed on in the 2.0.x series (have not tried the 2.1x)

XREQ server                         REP client
===========                         ==========

Case 1:

import zmq
c = zmq.Context()
s = c.socket(zmq.XREQ)
s.bind('tcp://127.0.0.1:5555')
                                   import zmq
                                   c = zmq.Context()
                                   s = c.socket(zmq.REP)
                                   s.connect('tcp://127.0.0.1:5555')
s.send('asdf')
                                   s.recv()  --> This gives...
                                   Assertion failed: fetched (rep.cpp:232)
                                   Abort trap

Case 2:

import zmq
c = zmq.Context()
s = c.socket(zmq.XREQ)
s.bind('tcp://127.0.0.1:5555')
s.send('asdf')
                                   import zmq
                                   c = zmq.Context()
                                   s = c.socket(zmq.REP)
                                   s.connect('tcp://127.0.0.1:5555')
                                   s.recv() --> This gives
                                   Assertion failed: fetched (rep.cpp:232)
                                   Abort trap



Case 3:

import zmq
c = zmq.Context()
s = c.socket(zmq.XREQ)
s.bind('tcp://127.0.0.1:5555')
                                   import zmq
                                   c = zmq.Context()
                                   s = c.socket(zmq.REP)
                                   s.connect('tcp://127.0.0.1:5555')
                                   s.recv()  # This blocks
s.send('asdf')              ------> Right as s.send('adsf') is called
                                   Assertion failed: fetched (rep.cpp:232)
                                   Abort trap

Some important points:

* Does not happen with client is an XREP, server is XREQ.
* Does not happen with client as REP, server as REQ.

Any help you can provide in debugging this would be greatly appreciated!

Thanks and cheers,

Brian


-- 
Brian E. Granger, Ph.D.
Assistant Professor of Physics
Cal Poly State University, San Luis Obispo
[email protected]
[email protected]
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to