Hmm... somehow Lucene is flushing a new segment on closing the
IndexWriter, and thinks 1 doc had been added to the stored fields
file, yet the fdx file is the wrong size (0 bytes).  This check (&
exception) are designed to prevent corruption from entering the index,
so it's at least good to see CheckIndex passes after this.

I don't think you're hitting LUCENE-1521: that issue only happens if a
single segment has more than ~268 million docs.

Which exact JRE version are you using?

When you hit this exception, is it always "1 docs vs 0 length in bytes"?

Mike

On Wed, May 20, 2009 at 3:19 AM, James X
<hello.nigerian.spamm...@gmail.com> wrote:
> Hello all,I'm running Solr 1.3 in a multi-core environment. There are up to
> 2000 active cores in each Solr webapp instance at any given time.
>
> I've noticed occasional errors such as:
> SEVERE: java.lang.RuntimeException: after flush: fdx size mismatch: 1 docs
> vs 0 length in bytes of _h.fdx
>        at
> org.apache.lucene.index.StoredFieldsWriter.closeDocStore(StoredFieldsWriter.java:94)
>        at
> org.apache.lucene.index.DocFieldConsumers.closeDocStore(DocFieldConsumers.java:83)
>        at
> org.apache.lucene.index.DocFieldProcessor.closeDocStore(DocFieldProcessor.java:47)
>        at
> org.apache.lucene.index.DocumentsWriter.closeDocStore(DocumentsWriter.java:367)
>        at
> org.apache.lucene.index.DocumentsWriter.flush(DocumentsWriter.java:567)
>        at
> org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:3540)
>        at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:3450)
>        at
> org.apache.lucene.index.IndexWriter.closeInternal(IndexWriter.java:1638)
>        at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:1602)
>        at org.apache.lucene.index.IndexWriter.close(IndexWriter.java:1578)
>        at
> org.apache.solr.update.SolrIndexWriter.close(SolrIndexWriter.java:153)
>
> during commit / optimise operations.
>
> These errors then cause cascading errors during updates on the offending
> cores:
> 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:1070)
>        at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:924)
>        at
> org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:116)
>        at
> org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:122)
>
> This looks like http://issues.apache.org/jira/browse/LUCENE-1521, but when I
> upgraded Lucene to 2.4.1 under Solr 1.3, the issue still remains.
>
> CheckIndex doesn't find any problems with the index, and problems disappear
> after an (inconvenient, for me) restart of Solr.
>
> Firstly, can I as the symptoms are so close to those in 1521, can I check my
> Lucene upgrade method should work:
> - unzip the Solr 1.3 war
> - remove the Lucene 2.4dev jars
> (lucene-core, lucene-spellchecker, lucene-snowball, lucene-queries,
> lucene-memory,lucene-highlighter, lucene-analyzers)
> - move in the Lucene 2.4.1 jars
> - rezip the directory structures as solr.war.
>
> I think this has worked, as solr/default/admin/registry.jsp shows:
>  <lucene-spec-version>2.4.1</lucene-spec-version>
>  <lucene-impl-version>2.4.1 750176 - 2009-03-04
> 21:56:52</lucene-impl-version>
>
> Secondly, if this Lucene fix isn't the right solution to this problem, can
> anyone suggest an alternative approach? The only problems I've had up to now
> is to do with the number of allowed file handles, which was fixed by
> changing limits.conf (RHEL machine).
>
> Many thanks!
> James
>

Reply via email to