You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Rob Davies (JIRA)" <ji...@apache.org> on 2008/07/28 20:28:00 UTC

[jira] Assigned: (AMQ-1842) HashIndex leaks file handles when destination is removed

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

Rob Davies reassigned AMQ-1842:
-------------------------------

    Assignee: Rob Davies

> HashIndex leaks file handles when destination is removed
> --------------------------------------------------------
>
>                 Key: AMQ-1842
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1842
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Message Store
>    Affects Versions: 5.2.0
>            Reporter: Scott Stanton
>            Assignee: Rob Davies
>            Priority: Critical
>         Attachments: patches
>
>
> When a destination is removed, all open file handles inside HashIndex will be leaked because HashIndex.clear() closes the index, deletes the backing store files, then reopens the files.  There is no provision for closing the HashIndex without reopening the files.  Eventually the broker runs out of file handles and hangs.
> For reference, here is the stack trace down to HashIndex.clear from the removeDestination call:
> {code}
> 	  at org.apache.activemq.kaha.impl.index.hash.HashIndex.clear(HashIndex.java:313)
> 	  at org.apache.activemq.kaha.impl.container.MapContainerImpl.clear(MapContainerImpl.java:385)
> 	  at org.apache.activemq.store.kahadaptor.KahaReferenceStore.removeAllMessages(KahaReferenceStore.java:201)
> 	  at org.apache.activemq.store.kahadaptor.KahaTopicReferenceStore.removeAllMessages(KahaTopicReferenceStore.java:320)
> 	  at org.apache.activemq.store.amq.AMQMessageStore.removeAllMessages(AMQMessageStore.java:503)
> 	  at org.apache.activemq.broker.region.Topic.dispose(Topic.java:452)
> 	  at org.apache.activemq.broker.region.AbstractRegion.dispose(AbstractRegion.java:469)
> 	  at org.apache.activemq.broker.region.AbstractRegion.removeDestination(AbstractRegion.java:185)
> 	  at org.apache.activemq.broker.region.RegionBroker.removeDestination(RegionBroker.java:289)
> 	  at org.apache.activemq.broker.BrokerFilter.removeDestination(BrokerFilter.java:146)
> 	  at org.apache.activemq.broker.BrokerFilter.removeDestination(BrokerFilter.java:146)
> 	  at org.apache.activemq.advisory.AdvisoryBroker.removeDestination(AdvisoryBroker.java:173)
> 	  at org.apache.activemq.broker.BrokerFilter.removeDestination(BrokerFilter.java:146)
> 	  at org.apache.activemq.broker.MutableBrokerFilter.removeDestination(MutableBrokerFilter.java:153)
> 	  at org.apache.activemq.broker.BrokerFilter.removeDestination(BrokerFilter.java:146)
> 	  at org.apache.activemq.broker.MutableBrokerFilter.removeDestination(MutableBrokerFilter.java:153)
> ...
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.