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

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

    Details

    • 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

      Description

      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

          Activity

          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... :-/ ]

            People

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

              Dates

              • Created:
                Updated: