lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Hostetter <>
Subject Re: SolrCore has a large number of SolrIndexSearchers retained in "infoRegistry"
Date Mon, 02 Aug 2010 21:33:47 GMT

: 1. QueryComponent#process
:      Is requesting for a SolrIndexSearcher twice by calling
: SolrQueryRequest#getSearcher() but is never being closed. I see several
: instances where getSearcher is being called but is never being properly
: closed - performing a quick call heirarchy of SolrQueryRequest#getSearcher()
: and SolrQueryRequest#close() will illustrate this point.

i believe you missunderstood my point -- i never said code that calls 
SolrQueryRequest#getSearcher needs to call SolrQueryRequest#close ...  i 
said that SolrIndexSearcher methods are ref counted, and that they those 
refrence counts needto be dealt with properly to ensure that the 
SOlrIndexSearchers are closed properly -- the fact that you are using 
embedded solr, and the fact that you are calling SolrCore.execute means 
that you *must* (by defintion) be instnatiating your own instances of 
SolrQueryRequest, which means thta you *must* (by definition) be "getting" 
a SolrIndexSearcher object from some method that requires you to "release" 
that SolrIndexSearcher when you are done.  If you use Solr as a server, it 
takes care of calling SolrQueryRequest.close() for you and it takes care 
of releasing the SolrIndexSearcher assocaited with that SolrQueryRequest 

I realize now that i wasn't explicit in my previous response but there is 
absolutely *no* way that anyone can provide any meaninful assistance to 
you in understanding these errors w/o you showing us *exactly* how you are 
using solr, and what your custom code looksl ike that you have embedded 
solr in -- we need to see how you instantiate your SOlrCore, we need to 
see all of the code involved when you call the execute method, we need to 
see where you get your SolrQueryRequest object from, we need to see where 
you get your SolrIndexSearcher from ... all of it.

As i said: these types of resources leaks are entirely dependent on *how* 
you use the code ... if you were using Solr as a server, we would know 
exactly how the objects are being accessed/released because that code is 
in SOlr -- but when you embedded Solr in custom code we have nothing to go 
on but what you tell us.


View raw message