Qpid
  1. Qpid
  2. QPID-5078

consumers not notified of messages if another consumer with selector/filter doesn't want it

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.24
    • Fix Version/s: 0.24
    • Component/s: C++ Broker
    • Labels:
      None

      Description

      E.g. run

        drain "q; {create:always, link:{selector:\"colour = 'red'\"}}" -f
      

      and in another terminal:

        drain "q; {create:always, link:{selector:\"colour = 'blue'\"}}" -f
      

      then:

        for i in `seq 1 5`; do spout --content "red-$i" -P colour=red q; done
        for i in `seq 1 5`; do spout --content "blue-$i" -P colour=blue q; done
        for i in `seq 6 10`; do spout --content "red-$i" -P colour=red q; done
      

      Expect first drain to see all 10 'red' messages, second drain to see all 5 'blue' messages but in practice this doesn't (always) happen. The message are on the queue but the consumers are not always notified of their existence.

        Activity

        Gordon Sim created issue -
        Gordon Sim made changes -
        Field Original Value New Value
        Description E.g. run

          drain "q; {create:always, link:{selector:\"colour = 'red'\"}}" -f

        and in another terminal:

          drain "q; {create:always, link:{selector:\"colour = 'blue'\"}}" -f

        then:

          for i in `seq 1 5`; do spout --content "red-$i" -P colour=red q; done
          for i in `seq 1 5`; do spout --content "blue-$i" -P colour=blue q; done
          for i in `seq 6 10`; do spout --content "red-$i" -P colour=red q; done
         
        Expect first drain to see all 10 'red' messages, second drain to see all 5 'blue' messages but in practice this doesn't (always) happen. The message are on the queue but the consumers are not always notified of their existence.
        E.g. run

        {noformat}
          drain "q; {create:always, link:{selector:\"colour = 'red'\"}}" -f
        {noformat}

        and in another terminal:

        {noformat}
          drain "q; {create:always, link:{selector:\"colour = 'blue'\"}}" -f
        {noformat}

        then:

        {noformat}
          for i in `seq 1 5`; do spout --content "red-$i" -P colour=red q; done
          for i in `seq 1 5`; do spout --content "blue-$i" -P colour=blue q; done
          for i in `seq 6 10`; do spout --content "red-$i" -P colour=red q; done
        {noformat}
        Expect first drain to see all 10 'red' messages, second drain to see all 5 'blue' messages but in practice this doesn't (always) happen. The message are on the queue but the consumers are not always notified of their existence.
        Hide
        Gordon Sim added a comment -
        Show
        Gordon Sim added a comment - See https://reviews.apache.org/r/13619/ for suggested fix
        Hide
        ASF subversion and git services added a comment -

        Commit 1514907 from Gordon Sim in branch 'qpid/trunk'
        [ https://svn.apache.org/r1514907 ]

        QPID-5078: ensure listeners are always notified if a message was left on the queue

        Show
        ASF subversion and git services added a comment - Commit 1514907 from Gordon Sim in branch 'qpid/trunk' [ https://svn.apache.org/r1514907 ] QPID-5078 : ensure listeners are always notified if a message was left on the queue
        Gordon Sim made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Andrew Stitcher added a comment -

        Reviewed for 0.24 - I see no problem in backporting this - low risk, important fix.

        Show
        Andrew Stitcher added a comment - Reviewed for 0.24 - I see no problem in backporting this - low risk, important fix.
        Hide
        Justin Ross added a comment - - edited
        Show
        Justin Ross added a comment - - edited Reviewed by Andrew. Approved for 0.24. http://qpid.2158936.n2.nabble.com/Suggested-for-inclusion-in-0-24-tt7597085.html
        Hide
        ASF subversion and git services added a comment -

        Commit 1515483 from Gordon Sim in branch 'qpid/branches/0.24'
        [ https://svn.apache.org/r1515483 ]

        QPID-5078: ensure listeners are always notified if a message was left on the queue (merged from r1514907)

        Show
        ASF subversion and git services added a comment - Commit 1515483 from Gordon Sim in branch 'qpid/branches/0.24' [ https://svn.apache.org/r1515483 ] QPID-5078 : ensure listeners are always notified if a message was left on the queue (merged from r1514907)
        Gordon Sim made changes -
        Fix Version/s 0.24 [ 12324776 ]
        Fix Version/s 0.25 [ 12324777 ]
        Hide
        Justin Ross added a comment -
        Show
        Justin Ross added a comment - Released in Qpid 0.24, http://qpid.apache.org/releases/qpid-0.24/index.html
        Justin Ross made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Resolved Resolved
        5h 21m 1 Gordon Sim 16/Aug/13 23:15
        Resolved Resolved Closed Closed
        22d 15h 21m 1 Justin Ross 08/Sep/13 14:37

          People

          • Assignee:
            Gordon Sim
            Reporter:
            Gordon Sim
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development