Uploaded image for project: 'libzmq'
  1. libzmq
  2. LIBZMQ-270

A SUB socket with a message in queue should always have ZMQ_POLLIN set


    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 3.0.0
    • Fix Version/s: None
    • Component/s: core
    • Labels:
    • Environment:

      OSX, Linux


      When checking for events on a SUB socket with zmq_getsockopt(sock, ZMQ_EVENTS, &events, &size), the events variable should be set to ZMQ_POLLIN. In 3.0, it is set to 0.

      This only occurs when the SUB socket binds and the PUB connects. If you swap the bind/connect on the sockets, it works.

      This same code works in 2.1.x regardless of the order of bind/connect.

      (issue has been committed to the issues repository.)


        cremes Chuck Remes created issue -
        cremes Chuck Remes made changes -
        Field Original Value New Value
        Priority Minor [ 4 ] Critical [ 2 ]
        cremes Chuck Remes made changes -
        Priority Critical [ 2 ] Major [ 3 ]
        pieterh Pieter Hintjens made changes -
        Comment [ Here is a workaround that works:

        - use XSUB instead of SUB
        - after XSUB connects allow 20 msec for connection to establish
        - send subscription manually, as message starting with 0x01
        - allow 20 msec for publisher to receive subscription (if you need to synch it)
        pieterh Pieter Hintjens made changes -
        Comment [ Sadly the workaround doesn't work consistently... :-/ ]


          • Assignee:
            sustrik Martin Sustrik
            cremes Chuck Remes
          • Votes:
            3 Vote for this issue
            8 Start watching this issue


            • Created: