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

[C++ broker] Linearstore to return any empty page to EPL

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 0.24
    • None
    • C++ Broker
    • None

    Description

      Linear store should return to EPL any empty file of a journal, not only the oldest one (once it gets emptied). As there can be corner cases where journal enqueue record sits in journal (almost) forever, while the journal gets next enqueue+dequeue records in parallel. In particular, basic scenarios cover message filters in consumers, priority queue (with message of lower priority never consumed), or tpl journal with orphaned transaction (until QPID-5531 is fixed).

      One particular reproducer with priority queue:

      qpid-config add queue testQueue --argument=x-qpid-priorities=10 --durable
      qpid-send -a testQueue -m 1 --priority 1 --durable=yes
      while true; do ./src/tests/qpid-send -a testQueue -m 5000 --priority 2 --durable=yes; ./src/tests/qpid-receive -a testQueue -m 5000 --print-content=no; qpid-stat -q; done

      ~/.qpidd/qls/jrnl/testQueue/ grows forever.

      (I am fine to close it as WONTFIX if a potential fix would be too complex, compared to the probability of the corner cases)

      Attachments

        Activity

          People

            Unassigned Unassigned
            pmoravec Pavel Moravec
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: