Hey Yonik,
I tested the last nightly build and still happens... but I have solved it! I
tell you my solution, it seems to be working well but just want to be sure
that it doesn't have any bad effects as for me this is one of the most
complicated parts of the Solr source (the fact of dealing with multiple
indexsearchers in a syncronized way).
I noticed that in the SolrCore.java, there's a part in the function
getSearcher where there is a comment saying:

// we are all done with the old searcher we used
// for warming...

And after that the code is:
if (currSearcherHolderF!=null) currSearcherHolderF.decref();

The problem here is that this old SolrIndexSearcher is never closed and
never removed from _searchers
What I have done:

if (currSearcherHolderF!=null){

        currSearcherHolderF.get().close(); //close SolrIndexSearcher proper
        currSearcherHolderF.decref();
        _searchers.remove(); //remove the
}

Doing that... if I do a "lsof | grep tomcat" will see that tomcat is not
holding deleted files anymore (as indexsearcher was proper close) and the
_searchers var will not accumulate infinite references...
It sorts the problem in the stats screen aswell... after 5 full-imports it
just shows one IndexSearcher
What do you think? 
-- 
View this message in context: 
http://www.nabble.com/Tomcat-holding-deleted-snapshots-until-it%27s-restarted---SOLVED%21%21%21-tp22451252p22500372.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to