Hi, all. I'm running solr 1.3 inside Tomcat 6.0.18. I'm running a modified query parser, tokenizer, highlighter, and have a CustomScoreQuery for dates.
After some amount of time, I see solr stop responding to update requests. When crawling through the logs, I see the following pattern: Jan 12, 2009 7:27:42 PM org.apache.solr.update.DirectUpdateHandler2 commit INFO: start commit(optimize=false,waitFlush=false,waitSearcher=true) Jan 12, 2009 7:28:11 PM org.apache.solr.common.SolrException log SEVERE: Error during auto-warming of key:org.apache.solr.search.queryresult...@ce0f92b9:java.lang.OutOfMemoryError at org.apache.lucene.index.TermBuffer.toTerm(TermBuffer.java:122) at org.apache.lucene.index.SegmentTermEnum.term (SegmentTermEnum.java:167) at org.apache.lucene.index.SegmentMergeInfo.next (SegmentMergeInfo.java:66) at org.apache.lucene.index.MultiSegmentReader$MultiTermEnum.next (MultiSegmentReader.java:492) at org.apache.lucene.search.FieldCacheImpl$7.createValue (FieldCacheImpl.java:267) at org.apache.lucene.search.FieldCacheImpl$Cache.get (FieldCacheImpl.java:72) at org.apache.lucene.search.FieldCacheImpl.getInts (FieldCacheImpl.java:245) at org.apache.solr.search.function.IntFieldSource.getValues (IntFieldSource.java:50) at org.apache.solr.search.function.SimpleFloatFunction.getValues (SimpleFloatFunction.java:41) at org.apache.solr.search.function.BoostedQuery$CustomScorer.<init> (BoostedQuery.java:111) at org.apache.solr.search.function.BoostedQuery$CustomScorer.<init> (BoostedQuery.java:97) at org.apache.solr.search.function.BoostedQuery $BoostedWeight.scorer(BoostedQuery.java:88) at org.apache.lucene.search.IndexSearcher.search (IndexSearcher.java:132) 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.getDocListNC (SolrIndexSearcher.java:966) at org.apache.solr.search.SolrIndexSearcher.getDocListC (SolrIndexSearcher.java:838) at org.apache.solr.search.SolrIndexSearcher.access$000 (SolrIndexSearcher.java:56) at org.apache.solr.search.SolrIndexSearcher$2.regenerateItem (SolrIndexSearcher.java:260) at org.apache.solr.search.LRUCache.warm(LRUCache.java:194) at org.apache.solr.search.SolrIndexSearcher.warm (SolrIndexSearcher.java:1518) at org.apache.solr.core.SolrCore$3.call(SolrCore.java:1018) at java.util.concurrent.FutureTask$Sync.innerRun (FutureTask.java:314) at java.util.concurrent.FutureTask.run(FutureTask.java:149) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask (ThreadPoolExecutor.java:896) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:735) Jan 12, 2009 7:28:11 PM org.apache.tomcat.util.net.JIoEndpoint$Acceptor run SEVERE: Socket accept failed Throwable occurred: java.lang.OutOfMemoryError at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:414) at java.net.ServerSocket.implAccept(ServerSocket.java:464) at java.net.ServerSocket.accept(ServerSocket.java:432) at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket (DefaultServerSocketFactory.java:61) at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run (JIoEndpoint.java:310) at java.lang.Thread.run(Thread.java:735) <<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>> << Java dumps core and heap at this point >> <<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>> Jan 12, 2009 7:28:21 PM org.apache.solr.common.SolrException log SEVERE: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: SingleInstanceLock: write.lock at org.apache.lucene.store.Lock.obtain(Lock.java:85) at org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1140) at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:938) at org.apache.solr.update.SolrIndexWriter.<init> (SolrIndexWriter.java:116) at org.apache.solr.update.UpdateHandler.createMainIndexWriter (UpdateHandler.java:122) at org.apache.solr.update.DirectUpdateHandler2.openWriter (DirectUpdateHandler2.java:167) at org.apache.solr.update.DirectUpdateHandler2.addDoc (DirectUpdateHandler2.java:221) at org.apache.solr.update.processor.RunUpdateProcessor.processAdd (RunUpdateProcessorFactory.java:59) at org.apache.solr.handler.XmlUpdateRequestHandler.processUpdate (XmlUpdateRequestHandler.java:196) at org.apache.solr.handler.XmlUpdateRequestHandler.handleRequestBody (XmlUpdateRequestHandler.java:123) at org.apache.solr.handler.RequestHandlerBase.handleRequest (RequestHandlerBase.java:131) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1204) at org.apache.solr.servlet.SolrDispatchFilter.execute (SolrDispatchFilter.java:303) at org.apache.solr.servlet.SolrDispatchFilter.doFilter (SolrDispatchFilter.java:232) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol $Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run (JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:735) After this, all future updates cause the same write lock failure. I'm willing to believe my code is somehow causing Solr to run out of memory, though I'd like to know if anyone sees the problem on vanilla Solr. An even bigger problem is the fact that once Solr is wedged, it stays that way until a human notices and restarts things. The tomcat stays running and there's no automatic detection that will either restart Solr, or restart the Tomcat container. Any suggestions on either front? Thanks, Jerry Quinn