Greetings.

We are seeing index corruption on one of our index. The index is 30GB with 169 
fields, created using Lucene 5.2.1 and lucene 5.0 codec,

no deletes and is optimized.


We see an " Invalid vLong detected (negative values disallowed)" while checking 
the field posting. However the checksum checks on the index are not failing.

If there was some data corruption on the physical disk, wouldn't the checksum 
be different (one of the disk and one compute while reading)? Could there be 
any possibility of a bug in the BlockTreeTermsWriter while encoding/writing the 
block term information.


Exception stack trace from CheckIndex tool,


Exception in thread "main" java.lang.RuntimeException: Invalid vLong detected 
(negative values disallowed)
at 
org.apache.lucene.store.ByteArrayDataInput.readVLong(ByteArrayDataInput.java:153)
at 
org.apache.lucene.codecs.blocktree.SegmentTermsEnumFrame.decodeMetaData(SegmentTermsEnumFrame.java:464)
at 
org.apache.lucene.codecs.blocktree.SegmentTermsEnum.docFreq(SegmentTermsEnum.java:983)
at org.apache.lucene.index.CheckIndex.checkFields(CheckIndex.java:1269)
at org.apache.lucene.index.CheckIndex.testPostings(CheckIndex.java:1716)


Unfortunately I am not able to reproduce this on a smaller scale and have seen 
it couple of other times as well. Let me know if you need more data.


Java version : java version - java version "1.7.0_04"

Java(TM) SE Runtime Environment (build 1.7.0_04-b20)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)

Thanks,
Kannan.


Reply via email to