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.)

        Gliffy Diagrams



            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: