[
https://issues.apache.org/jira/browse/AMQ-4262?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Tully resolved AMQ-4262.
-----------------------------
Resolution: Fixed
fix in http://svn.apache.org/viewvc?view=revision&revision=1436291
we now track the range of data files referenced by inflight transactions. this
allows ack generated data from consumers to be gced
> Pending send transaction can block on store usage and not resume once backlog
> is cleared
> ----------------------------------------------------------------------------------------
>
> Key: AMQ-4262
> URL: https://issues.apache.org/jira/browse/AMQ-4262
> Project: ActiveMQ
> Issue Type: Bug
> Components: Message Store
> Affects Versions: 5.7.0
> Reporter: Gary Tully
> Assignee: Gary Tully
> Labels: blocking, gc, kahadb, pfc, store, transactions, usage
> Fix For: 5.8.0
>
>
> A transacted send can block pending store usage, an active transaction will
> be visible to the store. This will block kahadb from gc of data files that
> occur after the inflight transaction.
> Consumers acking the pending messages can create additional data files that
> can't be gced. This is a problem because the queue can drain and not release
> the producer.
> With message database trace is is possible to see:{code}
> 14:20:20,515 | INFO | .0.1:51273@61616 | Queue |
> 125 - org.apache.activemq.activemq-core - 5.7.0.fuse-71-047 |
> Usage(default:store:queue://flood_out:store) percentUsage=99%,
> usage=30447772, limit=20971520,
> percentUsageMinDelta=1%;Parent:Usage(default:store) percentUsage=145%,
> usage=30447772, limit=20971520, percentUsageMinDelta=1%: Persistent store is
> Full, 100% of 20971520. Stopping producer (ID:..) to prevent flooding
> queue://flood_out. See http://activemq.apache.org/producer-flow-control.html
> for more info (blocking for: 5650s)
> .....
> 14:20:45,016 | TRACE | heckpoint Worker | MessageDatabase |
> 125 - org.apache.activemq.activemq-core - 5.7.0.fuse-71-047 | Last update:
> 30:453228, full gc candidates set: [11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
> 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
> 14:20:45,016 | TRACE | heckpoint Worker | MessageDatabase |
> 125 - org.apache.activemq.activemq-core - 5.7.0.fuse-71-047 | gc candidates
> after first tx:11:860775, []
> 14:20:45,016 | TRACE | heckpoint Worker | MessageDatabase |
> 125 - org.apache.activemq.activemq-core - 5.7.0.fuse-71-047 | gc candidates:
> []
> {code}Here there is a build up of data files, after the inflight transaction,
> containing acks and messages that could be cleaned up.
>
> The inflight transactions should protect a range of data files that they
> reference, not all subsequent data files.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira