qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aidan Skinner (JIRA)" <qpid-...@incubator.apache.org>
Subject [jira] Updated: (QPID-601) messages may be stranded when selectors are used
Date Wed, 25 Jun 2008 11:03:45 GMT

     [ https://issues.apache.org/jira/browse/QPID-601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Aidan Skinner updated QPID-601:
-------------------------------

    Component/s: Java Broker
       Assignee: Rob Godfrey

Rob, I think this has been fixed / invalidated by your refactoring, is that true?

> messages may be stranded when selectors are used
> ------------------------------------------------
>
>                 Key: QPID-601
>                 URL: https://issues.apache.org/jira/browse/QPID-601
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>    Affects Versions: M2, M2.1, M3
>            Reporter: Rafael H. Schloming
>            Assignee: Rob Godfrey
>
> ConcurrentSelectorDeliveryManager = CSDM
> PDQ = PreDeliveryQueue
> pPDQ = populatePreDeliveryQueue
> Messages may be stranded as a result of the way selectors are implemented. When a consumer
subscribes to a queue using a filter, CSDM.pPDQ is called to move messages from CSDM._messages
into the PDQ for that subscription. The pPDQ method does this by calling _messages.iterator()
and placing matching messages into the PDQ of the subscription. The result of _messages.iterator()
is not guaranteed to reflect concurrent changes made to _messages, and so a publish may end
up causing a message that matches the subscription to be placed onto _messages. This message
is then stranded there despite the fact that the subscription could accept the message because
nothing ever reexamines the _messages queue after the initial pPDQ when the consumer subscribes.
>  One potential fix for this issue would be to make the pPDQ method block messages from
being pushed onto the _messages queue while it operates. This would work, however it would
introduce undesirable synchronization for all publishers attempting to place messages on the
queue.
> So far I can't think of a proper fix for this issue that doesn't involve some substantial
changes in the data structures for queuing and delivering messages.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message