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