[ 
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: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to