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.

Reply via email to