activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Scott Stanton (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AMQ-1842) HashIndex leaks file handles when destination is removed
Date Thu, 10 Jul 2008 01:18:00 GMT

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

Scott Stanton updated AMQ-1842:
-------------------------------

    Attachment: patches

The attached patch attempts to resolve this issue by removing the state associated with a
destination when it is removed.

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


Mime
View raw message