IndexSearcher not closed after indexing with DataImportHandler --------------------------------------------------------------
Key: SOLR-1070 URL: https://issues.apache.org/jira/browse/SOLR-1070 Project: Solr Issue Type: Bug Components: clients - java Affects Versions: 1.4 Environment: Debian 2.6.26-1-xen-amd64 Tomcat 5.5 Reporter: Marc Sturlese Fix For: 1.4 What I have noticed is afecting to the nightly build using multicore. I am using tomcat 5.5 server and Debian 2.6.26-1-xen-amd64. After indexing and optimizing with DataImporthandler the old IndexSearcher is not being proper closed. To reproduce the bug I have done a full-import from a mysql database optimizing at the end. Once done I change the data from the database and index optimizing again. When now I do a lsof | grep solr I can see that tomcat is holding the deleted files from old index. I can see the error in the stats screen aswell... if I do 4 full-imports, stats will show me 3 opened IndexSearchers. As I index on the master and never use it to serve search requests I have sorted it modifying the function getSearcher in SolrCore.java There's a part in the source where is coded: // we are all done with the old searcher we used // for warming... if (currSearcherHolderF!=null){currSearcherHolderF.decref();} I force there to close the indexSearcher and remvoe it from the RefCounted: // we are all done with the old searcher we used // for warming... if (currSearcherHolderF!=null){ currSearcherHolderF.get().close(); currSearcherHolderF.decref(); _searchers.remove(); } As Yonik told me: >> Forcing it to close at the point you did is unsafe since other threads >> may still be using that searcher. My solution is definitely not good if search requests must be served on that core of that server... -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.