Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical 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
      
      1. consumer.cpp
        0.4 kB
        Martin Sustrik
      2. main.cpp
        1 kB
        Martin Sustrik

        Activity

        Hide
        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
        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 Koppanen added a comment -

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

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

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

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

        Test case attached.

        Show
        Martin Sustrik added a comment - Test case attached.
        Hide
        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
        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 Koppanen
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: