[
https://issues.apache.org/jira/browse/AMQ-3352?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Tully resolved AMQ-3352.
-----------------------------
Resolution: Fixed
Fix Version/s: 5.6.0
fix in http://svn.apache.org/viewvc?rev=1130865&view=rev
The state tracker no longer holds a copy so that it gets the correct message
size after marshaling.
> failover ConnectionStateTracker can lead to OOM with TextMessages
> -----------------------------------------------------------------
>
> Key: AMQ-3352
> URL: https://issues.apache.org/jira/browse/AMQ-3352
> Project: ActiveMQ
> Issue Type: Bug
> Components: JMS client
> Affects Versions: 5.5.0
> Reporter: Gary Tully
> Assignee: Gary Tully
> Labels: OOM, jmsclient, textmessage
> Fix For: 5.6.0
>
>
> With a reasonable large textmessage, the connection state tracker, which
> keeps an LRU cache of messages for redelivery on failover, can grow. The
> problem is the use of message size, which is approximated before marshaling.
> The approximation is > the encoded size so the size increments on a track
> back are larger than the decrements on a track, which lease to growth in the
> number of messages cached and can lead to an OOM.
> The fix appears to be to not cache a copy of the message, such that the
> increment when the message is evicted will reflect the decrement after
> marshaling.
> The change that exposed this issue is
> https://issues.apache.org/jira/browse/AMQ-2585 - without that change the
> state tracker capacity would shrink.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira