Hello All , we are using Lucune 3.6.2 in our web application on tomcat 5.5 and recently we started testing our application on tomcat 7, unfortunately we seem to encounter a memory link in Lucune's CloseableThreadLocal class , any help with solving the below issue would be much appreciated.
we are using RAMDirectory for our Indexes , while testing the application on tomcat 7 we noticed that there is a memory leak in our application , after taking a heap dump we can see the memory leak is in the: Type |Name |Value ------------------------------------------------------------ ref | index | org.apache.lucene.store.RAMDirectory ---> ------------------------------------------------------------ ------------------------------------------------------------------------ ref | core | org.apache.lucene.index.SegmentReader$CoreReaders ---> ------------------------------------------------------------------------ -------------------------------------------------------------- ref | tis | org.apache.lucene.index.TermInfosReader ---> -------------------------------------------------------------- ----------------------------------------------------------------------------- ref | threadResources | org.apache.lucene.util.CloseableThreadLocal ---> ----------------------------------------------------------------------------- -------------------------------------------- ref | hardRefs | java.util.HashMap @ 0x9d566938 -------------------------------------------- i guess the HashMap is used for caching purposes and it hold entries where the key is a thread name and the value is a org.apache.lucene.index.TermInfosReader$ThreadResources object . *even when i stop new incoming connection to the application , tomcat closes all the active threads and a GC is run the above map size is not reduced and GC cannot reclaim the heap space . * the problem looks some what similar to LUCENE-3841 https://issues.apache.org/jira/browse/LUCENE-3841 but we are no using SnowballAnalyzer . ( i checked the code and made sure the hardRefs map is a WeakHashMap ) our JVM is : OpenJDK 64-Bit Server VM , java.runtime.version1.6.0_20-b20 one again any help would be much appreciated. thanks Alon