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] Closed: (QPID-601) messages may be stranded when selectors are used
Date Tue, 01 Jul 2008 13:18:44 GMT

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

Aidan Skinner closed QPID-601.

    Resolution: Fixed

This was fixed by robs rewrite

> 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
> 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.

View raw message