[
https://issues.apache.org/jira/browse/LUCENE-7569?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ferenczi Jim updated LUCENE-7569:
---------------------------------
Attachment: LUCENE-7569.patch
It turns out that the problem is a just a test bug related to
MockRandomMergePolicy. This merge policy is only used in tests and randomly
wraps the reader to be merged in a SlowCodecReaderWrapper in order to
deactivate the bulk merging. The test pass if I add a MergeReaderWrapper around
the original reader. This makes index sorting happy since the docvalues
instances are now re-created each time.
Bottom line is that merging of multi-valued docvalues works fine even when
index sorting is on except in these tests where the MockRandomMergePolicy
disables the bulk merge.
I've attached a patch that fixes this bug and the other test bug on
testNumericAlreadySorted. The patch is for the master branch (since
testNumericAlreadySorted should also fail on this branch) but the backport
should be straightforward.
> TestIndexSorting failures
> -------------------------
>
> Key: LUCENE-7569
> URL: https://issues.apache.org/jira/browse/LUCENE-7569
> Project: Lucene - Core
> Issue Type: Bug
> Reporter: Steve Rowe
> Assignee: Michael McCandless
> Priority: Blocker
> Fix For: master (7.0), 6.4
>
> Attachments: LUCENE-7569.patch
>
>
> My Jenkins found two reproducing seeds on branch_6x - these look different,
> but the failures happened on consecutive nightly runs:
> {noformat}
> Checking out Revision 535bf59a3b239f5c7bcd8c00f3e452c9b5e9b539
> (refs/remotes/origin/branch_6x)
> [...]
> [junit4] Suite: org.apache.lucene.index.TestIndexSorting
> [junit4] 2> ??? 18, 2016 9:50:39 AM
> com.carrotsearch.randomizedtesting.RandomizedRunner$QueueUncaughtExceptionsHandler
> uncaughtException
> [junit4] 2> WARNING: Uncaught exception in thread: Thread[Lucene Merge
> Thread #0,5,TGRP-TestIndexSorting]
> [junit4] 2> org.apache.lucene.index.MergePolicy$MergeException:
> java.lang.AssertionError: nextValue=4594289799775307848 vs
> previous=4606302611760746829
> [junit4] 2> at
> __randomizedtesting.SeedInfo.seed([5F8898DCABBFD056]:0)
> [junit4] 2> at
> org.apache.lucene.index.ConcurrentMergeScheduler.handleMergeException(ConcurrentMergeScheduler.java:668)
> [junit4] 2> at
> org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:648)
> [junit4] 2> Caused by: java.lang.AssertionError:
> nextValue=4594289799775307848 vs previous=4606302611760746829
> [junit4] 2> at
> org.apache.lucene.codecs.asserting.AssertingDocValuesFormat$AssertingDocValuesConsumer.addSortedNumericField(AssertingDocValuesFormat.java:152)
> [junit4] 2> at
> org.apache.lucene.codecs.DocValuesConsumer.mergeSortedNumericField(DocValuesConsumer.java:470)
> [junit4] 2> at
> org.apache.lucene.codecs.DocValuesConsumer.merge(DocValuesConsumer.java:243)
> [junit4] 2> at
> org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat$FieldsWriter.merge(PerFieldDocValuesFormat.java:153)
> [junit4] 2> at
> org.apache.lucene.index.SegmentMerger.mergeDocValues(SegmentMerger.java:167)
> [junit4] 2> at
> org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:111)
> [junit4] 2> at
> org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4320)
> [junit4] 2> at
> org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:3897)
> [junit4] 2> at
> org.apache.lucene.index.ConcurrentMergeScheduler.doMerge(ConcurrentMergeScheduler.java:588)
> [junit4] 2> at
> org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:626)
> [junit4] 2>
> [junit4] 2> NOTE: download the large Jenkins line-docs file by running
> 'ant get-jenkins-line-docs' in the lucene directory.
> [junit4] 2> NOTE: reproduce with: ant test -Dtestcase=TestIndexSorting
> -Dtests.method=testRandom3 -Dtests.seed=5F8898DCABBFD056 -Dtests.multiplier=2
> -Dtests.nightly=true -Dtests.slow=true
> -Dtests.linedocsfile=/home/jenkins/lucene-data/enwiki.random.lines.txt
> -Dtests.locale=he -Dtests.timezone=Canada/Central -Dtests.asserts=true
> -Dtests.file.encoding=ISO-8859-1
> [junit4] ERROR 14.9s J5 | TestIndexSorting.testRandom3 <<<
> [junit4] > Throwable #1:
> org.apache.lucene.store.AlreadyClosedException: this IndexWriter is closed
> [junit4] > at
> org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:748)
> [junit4] > at
> org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:762)
> [junit4] > at
> org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1566)
> [junit4] > at
> org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1315)
> [junit4] > at
> org.apache.lucene.index.TestIndexSorting.testRandom3(TestIndexSorting.java:2019)
> [junit4] > at java.lang.Thread.run(Thread.java:745)
> [junit4] > Caused by: java.lang.AssertionError:
> nextValue=4594289799775307848 vs previous=4606302611760746829
> [junit4] > at
> org.apache.lucene.codecs.asserting.AssertingDocValuesFormat$AssertingDocValuesConsumer.addSortedNumericField(AssertingDocValuesFormat.java:152)
> [junit4] > at
> org.apache.lucene.codecs.DocValuesConsumer.mergeSortedNumericField(DocValuesConsumer.java:470)
> [junit4] > at
> org.apache.lucene.codecs.DocValuesConsumer.merge(DocValuesConsumer.java:243)
> [junit4] > at
> org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat$FieldsWriter.merge(PerFieldDocValuesFormat.java:153)
> [junit4] > at
> org.apache.lucene.index.SegmentMerger.mergeDocValues(SegmentMerger.java:167)
> [junit4] > at
> org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:111)
> [junit4] > at
> org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4320)
> [junit4] > at
> org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:3897)
> [junit4] > at
> org.apache.lucene.index.ConcurrentMergeScheduler.doMerge(ConcurrentMergeScheduler.java:588)
> [junit4] > at
> org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:626)Throwable
> #2: com.carrotsearch.randomizedtesting.UncaughtExceptionError: Captured an
> uncaught exception in thread: Thread[id=1115, name=Lucene Merge Thread #0,
> state=RUNNABLE, group=TGRP-TestIndexSorting]
> [junit4] > Caused by:
> org.apache.lucene.index.MergePolicy$MergeException: java.lang.AssertionError:
> nextValue=4594289799775307848 vs previous=4606302611760746829
> [junit4] > at
> __randomizedtesting.SeedInfo.seed([5F8898DCABBFD056]:0)
> [junit4] > at
> org.apache.lucene.index.ConcurrentMergeScheduler.handleMergeException(ConcurrentMergeScheduler.java:668)
> [junit4] > at
> org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:648)
> [junit4] > Caused by: java.lang.AssertionError:
> nextValue=4594289799775307848 vs previous=4606302611760746829
> [junit4] > at
> org.apache.lucene.codecs.asserting.AssertingDocValuesFormat$AssertingDocValuesConsumer.addSortedNumericField(AssertingDocValuesFormat.java:152)
> [junit4] > at
> org.apache.lucene.codecs.DocValuesConsumer.mergeSortedNumericField(DocValuesConsumer.java:470)
> [junit4] > at
> org.apache.lucene.codecs.DocValuesConsumer.merge(DocValuesConsumer.java:243)
> [junit4] > at
> org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat$FieldsWriter.merge(PerFieldDocValuesFormat.java:153)
> [junit4] > at
> org.apache.lucene.index.SegmentMerger.mergeDocValues(SegmentMerger.java:167)
> [junit4] > at
> org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:111)
> [junit4] > at
> org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4320)
> [junit4] > at
> org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:3897)
> [junit4] > at
> org.apache.lucene.index.ConcurrentMergeScheduler.doMerge(ConcurrentMergeScheduler.java:588)
> [junit4] > at
> org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(ConcurrentMergeScheduler.java:626)
> [junit4] 2> NOTE: leaving temporary files on disk at:
> /var/lib/jenkins/jobs/Lucene-Solr-Nightly-6.x/workspace/lucene/build/core/test/J5/temp/lucene.index.TestIndexSorting_5F8898DCABBFD056-001
> [junit4] 2> NOTE: test params are: codec=Asserting(Lucene62):
> {docs=PostingsFormat(name=Direct), norms=PostingsFormat(name=Direct),
> positions=PostingsFormat(name=Memory doPackFST= false),
> id=PostingsFormat(name=Direct),
> term_vectors=PostingsFormat(name=LuceneFixedGap)},
> docValues:{multi_valued_long=DocValuesFormat(name=Lucene54),
> double=DocValuesFormat(name=Direct), foo=DocValuesFormat(name=Lucene54),
> numeric=DocValuesFormat(name=Direct),
> positions=DocValuesFormat(name=Lucene54),
> multi_valued_numeric=DocValuesFormat(name=Asserting),
> float=DocValuesFormat(name=Memory), int=DocValuesFormat(name=Asserting),
> long=DocValuesFormat(name=Memory), points=DocValuesFormat(name=Asserting),
> sorted=DocValuesFormat(name=Direct),
> multi_valued_double=DocValuesFormat(name=Asserting),
> docs=DocValuesFormat(name=Asserting),
> multi_valued_string=DocValuesFormat(name=Asserting),
> norms=DocValuesFormat(name=Asserting), bytes=DocValuesFormat(name=Asserting),
> binary=DocValuesFormat(name=Direct), id=DocValuesFormat(name=Asserting),
> multi_valued_int=DocValuesFormat(name=Direct),
> multi_valued_bytes=DocValuesFormat(name=Direct),
> multi_valued_float=DocValuesFormat(name=Memory),
> term_vectors=DocValuesFormat(name=Direct)}, maxPointsInLeafNode=1312,
> maxMBSortInHeap=5.376962888308618,
> sim=RandomSimilarity(queryNorm=true,coord=yes): {positions=DFR I(ne)3(800.0),
> id=IB LL-L3(800.0), term_vectors=DFR I(ne)B3(800.0)}, locale=he,
> timezone=Canada/Central
> [junit4] 2> NOTE: Linux 4.1.0-custom2-amd64 amd64/Oracle Corporation
> 1.8.0_77 (64-bit)/cpus=16,threads=1,free=132261744,total=508559360
> [junit4] 2> NOTE: All tests run in this JVM: [TestFixedBitSet,
> TestSearchAfter, TestMinShouldMatch2, TestStopFilter, TestMmapDirectory,
> TestAutomaton, TestTransactions, TestMultiLevelSkipList, TestForUtil,
> TestFieldType, TestIntBlockPool, TestNumericRangeQuery64, TestBoolean2,
> Test2BPositions, TestDemo, TestSpanBoostQuery, TestSpanMultiTermQueryWrapper,
> TestCharsRefBuilder, TestIOUtils, TestAllFilesHaveChecksumFooter,
> TestMaxTermFrequency, TestConjunctionDISI, TestIndexWriterMerging,
> TestPackedInts, TestLucene50StoredFieldsFormat, TestGeoEncodingUtils,
> TestGeoUtils, Test2BPoints, Test2BSortedDocValuesFixedSorted, TestDocValues,
> TestExceedMaxTermLength, TestExitableDirectoryReader,
> TestFilterDirectoryReader, TestIndexSorting]
> [junit4] Completed [345/441 (1!)] on J5 in 39.46s, 43 tests, 1 error <<<
> FAILURES!
> {noformat}
> {noformat}
> Checking out Revision 500f6c7875be31c34ca68c58f850b7e64fd049a9
> (refs/remotes/origin/branch_6x)
> [...]
> [junit4] Suite: org.apache.lucene.index.TestIndexSorting
> [junit4] 2> NOTE: download the large Jenkins line-docs file by running
> 'ant get-jenkins-line-docs' in the lucene directory.
> [junit4] 2> NOTE: reproduce with: ant test -Dtestcase=TestIndexSorting
> -Dtests.method=testRandom3 -Dtests.seed=5D1E2D97B0777D5C -Dtests.multiplier=2
> -Dtests.nightly=true -Dtests.slow=true
> -Dtests.linedocsfile=/home/jenkins/lucene-data/enwiki.random.lines.txt
> -Dtests.locale=fi-FI -Dtests.timezone=America/Tegucigalpa
> -Dtests.asserts=true -Dtests.file.encoding=UTF-8
> [junit4] ERROR 245s J3 | TestIndexSorting.testRandom3 <<<
> [junit4] > Throwable #1: java.lang.RuntimeException: segment has
> indexSort=<float: "float">! missingValue=0.38226813,<sortedset:
> "multi_valued_bytes">! selector=MIN,<int: "id"> but docID=75 sorts after
> docID=76
> [junit4] > at
> __randomizedtesting.SeedInfo.seed([5D1E2D97B0777D5C:FFC6634DD485545A]:0)
> [junit4] > at
> org.apache.lucene.index.CheckIndex.testSort(CheckIndex.java:876)
> [junit4] > at
> org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:756)
> [junit4] > at
> org.apache.lucene.util.TestUtil.checkIndex(TestUtil.java:300)
> [junit4] > at
> org.apache.lucene.store.MockDirectoryWrapper.close(MockDirectoryWrapper.java:865)
> [junit4] > at
> org.apache.lucene.util.IOUtils.close(IOUtils.java:89)
> [junit4] > at
> org.apache.lucene.util.IOUtils.close(IOUtils.java:76)
> [junit4] > at
> org.apache.lucene.index.TestIndexSorting.testRandom3(TestIndexSorting.java:2087)
> [junit4] > at java.lang.Thread.run(Thread.java:745)
> [junit4] 2> NOTE: leaving temporary files on disk at:
> /var/lib/jenkins/jobs/Lucene-Solr-Nightly-6.x/workspace/lucene/build/core/test/J3/temp/lucene.index.TestIndexSorting_5D1E2D97B0777D5C-001
> [junit4] 2> NOTE: test params are: codec=CheapBastard,
> sim=RandomSimilarity(queryNorm=true,coord=no): {positions=DFR I(F)BZ(0.3),
> id=IB SPL-DZ(0.3), term_vectors=DFR I(ne)3(800.0)}, locale=fi-FI,
> timezone=America/Tegucigalpa
> [junit4] 2> NOTE: Linux 4.1.0-custom2-amd64 amd64/Oracle Corporation
> 1.8.0_77 (64-bit)/cpus=16,threads=1,free=252779544,total=525336576
> [junit4] 2> NOTE: All tests run in this JVM: [TestBooleanRewrites,
> TestSearchForDuplicates, TestSwappedIndexFiles, TestClassicSimilarity,
> TestNeverDelete, TestAllFilesCheckIndexHeader, TestBooleanScorer,
> TestPayloads, TestDelegatingAnalyzerWrapper, TestWeakIdentityMap,
> TestRollingBuffer, TestParallelCompositeReader, TestExitableDirectoryReader,
> TestCollectionUtil, TestLegacyNumericUtils, TestBagOfPostings, TestNot,
> TestPhrasePrefixQuery, TestSimpleExplanationsWithFillerDocs,
> TestPriorityQueue, TestBlockPostingsFormat2, TestIntroSorter,
> FiniteStringsIteratorTest, TestIndexWriterReader, TestNumericRangeQuery64,
> TestDeletionPolicy, TestBooleanOr, TestSloppyPhraseQuery, TestNRTThreads,
> TestPolygon, TestPolygon2D, TestDocValues, TestFilterDirectoryReader,
> TestIndexSorting]
> [junit4] Completed [431/441 (1!)] on J3 in 263.65s, 43 tests, 1 error <<<
> FAILURES!
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]