Hi,
I am currently running into merge-issues while optimizing an index.

To give you some informations:

We are running 4 SOLR Servers with identical OS, VM-Hardware, RAM etc.
Only one Server by now is having issues, the others are fine.

We are running SOLR 4.4.0 with Tomcat 6.0
It was running since October without any problems.
The problems first occur after doing a minor change in the synonyms.txt, but I guess that was just a coincedence.

We added `ulimit -v unlimited` to our tomcat init-script years ago.

We have 4 Cores running on each SOLR Server, configuration, index-sizes of all 4 servers are identical (we are distributing cfgs via git).

We did a rebuild of the index twice: First time without removing the old index files, second time deleting the data dir and starting from scratch.

We are working with DIH, getting data from a MySQL DB.
After an initial complete index-run, the optimize is working. The optimize fails one or two days later.

We are doing one optimize-run a day, the index contains ~10 millions documents, the index size on disc is ~39GB while having 127G of free disc space.

We have a mergeFactor of 3.

The solr.log says:

ERROR - 2014-01-12 22:47:11.062; org.apache.solr.common.SolrException; java.io.IOException: background merge hit exception: _dc8(4.4):C9876366/1327 _e8u(4.4):C4250/7 _f4a(4.4):C1553/13 _fj6(4.4 ):C1903/15 _ep3(4.4):C1217/42 _fle(4.4):C256/7 _flf(4.4):C11 into _flg [maxNumSegments=1] at org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:1714) at org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:1650) at org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:530) at org.apache.solr.update.processor.RunUpdateProcessor.processCommit(RunUpdateProcessorFactory.java:95) at org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:64) at org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalCommit(DistributedUpdateProcessor.java:1235) at org.apache.solr.update.processor.DistributedUpdateProcessor.processCommit(DistributedUpdateProcessor.java:1219) at org.apache.solr.update.processor.LogUpdateProcessor.processCommit(LogUpdateProcessorFactory.java:157) at org.apache.solr.handler.RequestHandlerUtils.handleCommit(RequestHandlerUtils.java:69) at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904)
at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:659) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:362) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158) 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:127) 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:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:735)
Caused by: java.lang.NullPointerException
        at java.nio.ByteBuffer.get(ByteBuffer.java:661)
        at java.nio.DirectByteBuffer.get(DirectByteBuffer.java:245)
at org.apache.lucene.store.ByteBufferIndexInput.readBytes(ByteBufferIndexInput.java:107) at org.apache.lucene.codecs.lucene41.ForUtil.readBlock(ForUtil.java:197) at org.apache.lucene.codecs.lucene41.Lucene41PostingsReader$BlockDocsAndPositionsEnum.refillDocs(Lucene41PostingsReader.java:748) at org.apache.lucene.codecs.lucene41.Lucene41PostingsReader$BlockDocsAndPositionsEnum.nextDoc(Lucene41PostingsReader.java:813) at org.apache.lucene.codecs.MappingMultiDocsAndPositionsEnum.nextDoc(MappingMultiDocsAndPositionsEnum.java:104) at org.apache.lucene.codecs.PostingsConsumer.merge(PostingsConsumer.java:101) at org.apache.lucene.codecs.TermsConsumer.merge(TermsConsumer.java:164) at org.apache.lucene.codecs.FieldsConsumer.merge(FieldsConsumer.java:72) at org.apache.lucene.index.SegmentMerger.mergeTerms(SegmentMerger.java:365) at org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:98) at org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:3772)
        at org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:3376)
at org.apache.lucene.index.ConcurrentMergeScheduler.doMerge(ConcurrentMergeScheduler.java:405) at org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:482)

I am currently running a checkIndex on that core/index - but that will run for hours, but I just want to kick that thread off to get any suggestions from you guys.

Any suggestions?
Thank you and best regards
Ralf

Reply via email to