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

          Attachments

            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: