activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AMQ-2487) MemoryUsage not properly accounted for when expiring messages to DLQ: can lead to hang.
Date Thu, 12 Nov 2009 10:45:52 GMT

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

Gary Tully updated AMQ-2487:
----------------------------

    Affects Version/s:     (was: 5.4.0)
                       5.3.0

> MemoryUsage not properly accounted for when expiring messages to DLQ: can lead to hang.
> ---------------------------------------------------------------------------------------
>
>                 Key: AMQ-2487
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2487
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.3.0
>         Environment: N/A
>            Reporter: Colin MacNaughton
>            Assignee: Gary Tully
>             Fix For: 5.4.0
>
>         Attachments: AMQ-2487patch.txt
>
>
> Given the following broker destination policy
> {code:xml} 
>     <destinationPolicy>
>       <policyMap>
>         <policyEntries>
>           <policyEntry topic=">" producerFlowControl="true"
>             memoryLimit="1mb">
>             <pendingSubscriberPolicy>
>               <vmCursor />
>             </pendingSubscriberPolicy>
>           </policyEntry>
>           <policyEntry queue=">" producerFlowControl="true"
>             memoryLimit="1mb">
>             <!--
>               Use VM cursor for better latency For more information,
>               see: http://activemq.apache.org/message-cursors.html
>             -->
>             <pendingQueuePolicy>
>               <vmQueueCursor />
>             </pendingQueuePolicy>
>           </policyEntry>
>         </policyEntries>
>       </policyMap>
>     </destinationPolicy>
> {code}
> If I send message to queue://TESTQ1 with an expiration of 1second, with an unreliable/slow
receiver, the publisher eventually hangs sending to the queue. The underlying problem is that
when the message is expired to the DLQ the MemoryUsage reference is left pointing the TESTQ1's
memory limiter, instead of being reset to the DLQ limiter, and when it is added to the DLQ,
TESTQ1's memory limiter is updated counteracting the decrement that is done by the TESTQ1
when the message is expired. 

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