Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-4595

Invoking Receiver::fetch() in a loop for slow producer causes only first <prefetch> messages received

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.18
    • 0.21
    • C++ Client

    Description

      Description of problem:
      Having a scenario with a slow producer and a consumer periodically running Receiver::fetch() method (for timeout lesser than forever), the consumer gets just first N messages where N is the size of prefetch / capacity, and then nothing - despite there are new messages on the broker.

      Version-Release number of selected component (if applicable):
      qpid-cpp-client*-0.18-14

      How reproducible:
      100%

      Steps to Reproduce:
      1. Unpack attached tarball
      2. make
      3. in one terminal, create queue and start producer (that waits 15 seconds to kick-off consumer first):
      ./setup
      4. in another terminal, start consumer:
      ./read

      Actual results:
      When producer starts to produce messages, the consumer gets just first 10 messages (or whatever is set in receiver.setCapacity()). Later on, despite there are new messages in the queue, receiver does not get any.

      Expected results:
      Receiver gets further messages when some occurr on the broker.

      Additional info:
      Patch proposed

      Attachments

        1. bz913448.patch
          2 kB
          Pavel Moravec
        2. bz913448_reproducer.tar.gz
          2 kB
          Pavel Moravec

        Activity

          People

            gsim Gordon Sim
            pmoravec Pavel Moravec
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 4h
                4h
                Remaining:
                Remaining Estimate - 4h
                4h
                Logged:
                Time Spent - Not Specified
                Not Specified