Thanks Yonik

The main search still happens through SolrDispatchFilter so SolrQueryRequest is 
getting closed implicitly.

But I do use direct api in following cases; So pl suggest any more possible 
resource issues 

1. update and commit; 
  core.getUpdateHanlder(); 
  Here I close the updateHandler once update/commits are done

2. Searching in other cores from current core writer
  I have requirement to aggregate the data from multiple indexes and send  
single xml response. 
  otherCore.getSearcher() and call search method to get reference to Hits
  I do call decref() on refCounted once done with processing result  

3. Also call reload core after commit ; This brings down the ram usage but does 
not solve the main issue; With the reload I don't see any leaks but the OOM 
error occurs after 2-3 days time. 

Do you think any other resource not getting closed ? 

Sunil


--- On Tue, 12/2/08, Yonik Seeley <[EMAIL PROTECTED]> wrote:

> From: Yonik Seeley <[EMAIL PROTECTED]>
> Subject: Re: OOM on commit after few days
> To: solr-user@lucene.apache.org
> Date: Tuesday, December 2, 2008, 1:13 PM
> Using embedded is always more error prone...you're
> probably forgetting
> to close some resource.
> Make sure to close all SolrQueryRequest objects.
> Start with a memory profiler or heap dump to try and figure
> out what's
> taking up all the memory.
> 
> -Yonik
> 
> On Tue, Dec 2, 2008 at 1:05 PM, Sunil
> <[EMAIL PROTECTED]> wrote:
> > I have been facing this issue since long in production
> environment and wanted to know if anybody came across can
> share their thoughts.
> > Appreciate your help.
> >
> > Environment
> > 2 GB index file
> > 3.5 million documents
> > 15 mins. time interval for committing 100 to 400
> document updates
> >   Commit happens once in 15 mins.
> > 3.5 GB of RAM available for JVM
> > Solr Version 1.3 ; (nightly build of oct 18, 2008)
> >
> > MDB - Message Driven Bean
> > I am Not using solr's replication mecahnism. Also
> don't use xml post update since the amount of data is
> too much.
> > I have bundled a MDB that receives messages for data
> updates and uses solr's update handler to update and
> commit the index.
> > Optimize happens once a day.
> >
> > Everything runs fine for 2-3 days; after that I keep
> getting following exceptions.
> >
> > Exception
> > org.apache.solr.common.SolrException log
> java.lang.OutOfMemoryError:
> >        at java.io.RandomAccessFile.readBytes(Native
> Method)
> >        at
> java.io.RandomAccessFile.read(RandomAccessFile.java:350)
> >        at
> org.apache.lucene.store.FSDirectory$FSIndexInput.readInternal(FSDirectory.java:596)
> >        at
> org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:136)
> >        at
> org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:92)
> >        at
> org.apache.lucene.index.SegmentReader.norms(SegmentReader.java:907)
> >        at
> org.apache.lucene.index.MultiSegmentReader.norms(MultiSegmentReader.java:338)
> >        at
> org.apache.lucene.search.TermQuery$TermWeight.scorer(TermQuery.java:69)
> >        at
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:131)
> >        at
> org.apache.lucene.search.Searcher.search(Searcher.java:126)
> >        at
> org.apache.lucene.search.Searcher.search(Searcher.java:105)
> >        at
> org.apache.solr.search.SolrIndexSearcher.getDocListAndSetNC(SolrIndexSearcher.java:1170)
> >        at
> org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:856)
> >        at
> org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:283)
> >        at
> org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:160)
> >        at
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:170)
> >        at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
> >        at
> org.apache.solr.core.SolrCore.execute(SolrCore.java:1302)
> >        at
> org.apache.solr.core.QuerySenderListener.newSearcher(QuerySenderListener.java:51)
> >        at
> org.apache.solr.core.SolrCore$4.call(SolrCore.java:1128)
> >        at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:284)
> >        at
> java.util.concurrent.FutureTask.run(FutureTask.java:138)
> >        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)
> >        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)
> >        at java.lang.Thread.run(Thread.java:810)
> >
> >

Reply via email to