Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 2.1.10, 3.1.0
    • Fix Version/s: 3.2.0, 2.2.1
    • Component/s: core
    • Labels:
      None
    • Environment:

      Mac OS X and Linux

      Description

      What happens is roughly:

      a) Start PZQ server
      b) Produce 10000 messages
      c) CTRL + C PZQ server and restart it, it correctly shows that 10k messages has been loaded from store
      d) Consume 1000 messages with consumer that doesn't have linger set
      e) 1% - 10% of the ACKs get lost

      Added sleep (1) to the of the consumer ensures that all ACKs get there.

      Steps to reproduce:

      a) Install http://fallabs.com/kyotocabinet/pkg/kyotocabinet-1.2.70.tar.gz
      b) Install ZeroMQ 2.1
      c) Build PZQ and follow the steps above

      building pzq

      $ git clone git://github.com/mkoppanen/pzq.git
      $ cd pzq
      $ mkdir build
      $ cd build
      $ cmake .. -DZEROMQ_ROOT=/path/to -DKYOTOCABINET_ROOT=/path/to
      $ make
      

        Gliffy Diagrams

          Activity

          Hide
          pieterh Pieter Hintjens added a comment -

          Mikko, can we make a pure minimal C test case for this? I'm happy to make the test case if you provide a minimal in PHP.

          Show
          pieterh Pieter Hintjens added a comment - Mikko, can we make a pure minimal C test case for this? I'm happy to make the test case if you provide a minimal in PHP.
          Hide
          mikko Mikko Koppanen added a comment -

          I think the following is the minimum to reproduce this: https://gist.github.com/1257512 (by Martin)

          Show
          mikko Mikko Koppanen added a comment - I think the following is the minimum to reproduce this: https://gist.github.com/1257512 (by Martin)
          Hide
          pieterh Pieter Hintjens added a comment -

          Hmm, I'd need a spec for the server part too.

          Show
          pieterh Pieter Hintjens added a comment - Hmm, I'd need a spec for the server part too.
          Hide
          sustrik Martin Sustrik added a comment -

          Test case attached.

          Show
          sustrik Martin Sustrik added a comment - Test case attached.
          Hide
          sustrik Martin Sustrik added a comment -

          The problem is that when consumer app is closed, the outgoing pipe is properly emptied, however, the last batch of data to send is in half-sent state (due to TCP pushback being applied). zmq_term doesn't wait for this data to be properly pushed to the network.

          Show
          sustrik Martin Sustrik added a comment - The problem is that when consumer app is closed, the outgoing pipe is properly emptied, however, the last batch of data to send is in half-sent state (due to TCP pushback being applied). zmq_term doesn't wait for this data to be properly pushed to the network.

            People

            • Assignee:
              Unassigned
              Reporter:
              mikko Mikko Koppanen
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: