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] [Resolved] (AMQ-4262) Pending send transaction can block on store usage and not resume once backlog is cleared
Date Mon, 21 Jan 2013 11:46:12 GMT

     [ 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

Mime
View raw message