[ 
https://issues.apache.org/jira/browse/LUCENE-6906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15022610#comment-15022610
 ] 

Adrien Grand commented on LUCENE-6906:
--------------------------------------

There are quite fast indeed (I did not test with SimpleText but I assume it 
would be fast as well). I put them in the Lucene54 test because they were quite 
specific to the Lucene54 impl (using a sparse encoding only when there are more 
than 1024 docs) but I can put them in the base class.

> Lucene54DocValuesFormat bug when a large segment does not have values
> ---------------------------------------------------------------------
>
>                 Key: LUCENE-6906
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6906
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Adrien Grand
>            Assignee: Adrien Grand
>            Priority: Minor
>         Attachments: LUCENE-6906.patch
>
>
> Mike reported getting the following stack trace during a merge:
> {noformat}
> java.lang.ArrayIndexOutOfBoundsException: -1
>         at 
> org.apache.lucene.util.packed.DirectMonotonicWriter.flush(DirectMonotonicWriter.java:64)
>         at 
> org.apache.lucene.util.packed.DirectMonotonicWriter.finish(DirectMonotonicWriter.java:126)
>         at 
> org.apache.lucene.codecs.lucene54.Lucene54DocValuesConsumer.writeSparseMissingBitset(Lucene54DocValuesConsumer.java:399)
>         at 
> org.apache.lucene.codecs.lucene54.Lucene54DocValuesConsumer.addNumericField(Lucene54DocValuesConsumer.java:207)
>         at 
> org.apache.lucene.codecs.lucene54.Lucene54DocValuesConsumer.addSortedField(Lucene54DocValuesConsumer.java:614)
>         at 
> org.apache.lucene.codecs.lucene54.Lucene54DocValuesConsumer.addSortedSetField(Lucene54DocValuesConsumer.java:653)
>         at 
> org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat$FieldsWriter.addSortedSetField(PerFieldDocValuesFormat.java:131)
>         at 
> org.apache.lucene.codecs.DocValuesConsumer.mergeSortedSetField(DocValuesConsumer.java:736)
>         at 
> org.apache.lucene.codecs.DocValuesConsumer.merge(DocValuesConsumer.java:219)
>         at 
> org.apache.lucene.index.SegmentMerger.mergeDocValues(SegmentMerger.java:150)
>         at org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:105)
>         at 
> org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4075)
>         at org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:3655)
>         at 
> org.apache.lucene.index.ConcurrentMergeScheduler.doMerge(ConcurrentMergeScheduler.java:588)
>         at 
> org.elasticsearch.index.engine.ElasticsearchConcurrentMergeScheduler.doMerge(ElasticsearchConcurrentMergeScheduler.java:95)
>         at 
> org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:626)
> {noformat}
> This is due to the fact that the segment did not have any values and made 
> DirectMonotonicWriter fail since it assumes at least one value (without 
> explicitly testing it).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to