[ 
https://issues.apache.org/jira/browse/LUCENE-4561?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon Willnauer updated LUCENE-4561:
------------------------------------

    Attachment: LUCENE-4561.patch

Phew... glad it reproduced.... 
So the problem here is the same as it was the last time that the assert is 
tripped when multiple threads already crossed the stall check before we 
actually stalled. I fixed this last time with checking the number of active 
thread states in the pool to get an upper bound but that is actually error 
prone. In this test here the thread pool only had one thread state but some of 
the indexing threads already went past the stall check and waited on the 
DWPTPool to lock that single state. At the same time flushing was so slow 
(simple text + throttle) that memory piled up and we stalled. But the 
calculation was simply wrong since there were 3 threads waiting for the DWPT 
lock but we counted only one in the assert. I added a counter that checks how 
many updates we see during a stall period. This give a tighter bound but its 
independent of the # of thread states in the pool
                
> DWPT assert tripped again
> -------------------------
>
>                 Key: LUCENE-4561
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4561
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Michael McCandless
>            Assignee: Simon Willnauer
>         Attachments: LUCENE-4561.patch
>
>
> TestBagOfPositions tripped the spooky DWPT ram used on flush assert in 
> http://jenkins.sd-datasolutions.de/job/Lucene-Solr-4.x-Linux/2472/
> It reproduces for me:
> {noformat}
> ant test  -Dtestcase=TestBagOfPositions -Dtests.method=test 
> -Dtests.seed=730E05D38A0E4AFA -Dtests.multiplier=3 -Dtests.slow=true 
> -Dtests.locale=de_DE_PREEURO -Dtests.timezone=America/Metlakatla 
> -Dtests.file.encoding=UTF-8
> {noformat}
> Full failure:
> {noformat}
> [junit4:junit4]   2> NOTE: reproduce with: ant test  
> -Dtestcase=TestBagOfPositions -Dtests.method=test 
> -Dtests.seed=730E05D38A0E4AFA -Dtests.multiplier=3 -Dtests.slow=true 
> -Dtests.locale=de_DE_PREEURO -Dtests.timezone=America/Metlakatla 
> -Dtests.file.encoding=UTF-8
> [junit4:junit4] ERROR   63.2s J0 | TestBagOfPositions.test <<<
> [junit4:junit4]    > Throwable #1: 
> com.carrotsearch.randomizedtesting.UncaughtExceptionError: Captured an 
> uncaught exception in thread: Thread[id=2163, name=Thread-1670, 
> state=RUNNABLE, group=TGRP-TestBagOfPositions]
> [junit4:junit4]    > Caused by: java.lang.AssertionError: actual mem: 
> 33763152 byte, expected mem: 33755888 byte, flush mem: 33610208, active mem: 
> 152944, pending DWPT: 0, flushing DWPT: 2, blocked DWPT: 0, peakDelta mem: 
> 67152 byte
> [junit4:junit4]    >  at 
> __randomizedtesting.SeedInfo.seed([730E05D38A0E4AFA]:0)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.DocumentsWriterFlushControl.assertMemory(DocumentsWriterFlushControl.java:120)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.DocumentsWriterFlushControl.doAfterDocument(DocumentsWriterFlushControl.java:187)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:384)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1451)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1126)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.RandomIndexWriter.addDocument(RandomIndexWriter.java:201)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.RandomIndexWriter.addDocument(RandomIndexWriter.java:160)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.TestBagOfPositions$1.run(TestBagOfPositions.java:111)
> [junit4:junit4]    > Throwable #2: 
> com.carrotsearch.randomizedtesting.UncaughtExceptionError: Captured an 
> uncaught exception in thread: Thread[id=2164, name=Thread-1671, 
> state=RUNNABLE, group=TGRP-TestBagOfPositions]
> [junit4:junit4]    > Caused by: java.lang.AssertionError: actual mem: 
> 33763152 byte, expected mem: 33755888 byte, flush mem: 33610208, active mem: 
> 152944, pending DWPT: 0, flushing DWPT: 2, blocked DWPT: 0, peakDelta mem: 
> 67152 byte
> [junit4:junit4]    >  at 
> __randomizedtesting.SeedInfo.seed([730E05D38A0E4AFA]:0)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.DocumentsWriterFlushControl.assertMemory(DocumentsWriterFlushControl.java:120)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.DocumentsWriterFlushControl.doAfterDocument(DocumentsWriterFlushControl.java:187)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:384)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1451)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1126)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.RandomIndexWriter.addDocument(RandomIndexWriter.java:201)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.RandomIndexWriter.addDocument(RandomIndexWriter.java:160)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.TestBagOfPositions$1.run(TestBagOfPositions.java:111)
> [junit4:junit4]    > Throwable #3: 
> com.carrotsearch.randomizedtesting.UncaughtExceptionError: Captured an 
> uncaught exception in thread: Thread[id=2166, name=Thread-1673, 
> state=RUNNABLE, group=TGRP-TestBagOfPositions]
> [junit4:junit4]    > Caused by: java.lang.AssertionError: actual mem: 
> 33763152 byte, expected mem: 33755888 byte, flush mem: 33610208, active mem: 
> 152944, pending DWPT: 0, flushing DWPT: 2, blocked DWPT: 0, peakDelta mem: 
> 67152 byte
> [junit4:junit4]    >  at 
> __randomizedtesting.SeedInfo.seed([730E05D38A0E4AFA]:0)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.DocumentsWriterFlushControl.assertMemory(DocumentsWriterFlushControl.java:120)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.DocumentsWriterFlushControl.doAfterDocument(DocumentsWriterFlushControl.java:187)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:384)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1451)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1126)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.RandomIndexWriter.addDocument(RandomIndexWriter.java:201)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.RandomIndexWriter.addDocument(RandomIndexWriter.java:160)
> [junit4:junit4]    >  at 
> org.apache.lucene.index.TestBagOfPositions$1.run(TestBagOfPositions.java:111)
> [junit4:junit4]   2> NOTE: test params are: codec=SimpleText, 
> sim=RandomSimilarityProvider(queryNorm=false,coord=no): {field=DFR I(ne)1}, 
> locale=de_DE_PREEURO, timezone=America/Metlakatla
> [junit4:junit4]   2> NOTE: Linux 3.2.0-32-generic amd64/IBM Corporation 1.6.0 
> (64-bit)/cpus=8,threads=1,free=55064736,total=63793152
> [junit4:junit4]   2> NOTE: All tests run in this JVM: [Nested1, 
> TestIndexWriterWithThreads, TestLevenshteinAutomata, TestBasicOperations, 
> TestStressNRT, TestIndexWriterExceptions, TestConjunctions, 
> TestMultiLevelSkipList, TestConcurrentMergeScheduler, 
> TestIndexWriterOnDiskFull, TestBytesRef, TestThreadedForceMerge, 
> TestDocument, TestCopyBytes, TestIndexWriterNRTIsCurrent, 
> TestScoreCachingWrappingScorer, TestScorerPerf, 
> TestDocValuesTypeCompatibility, TestPrefixCodedTerms, TestRollingBuffer, 
> TestPhrasePrefixQuery, Test4GBStoredFields, TestCustomSearcherSort, 
> TestExplanations, TestIndexInput, TestMultiThreadTermVectors, 
> TestTermInfosReaderIndex, TestSearchAfter, Test2BPositions, TestField, 
> TestSimpleAttributeImpl, TestFlushByRamOrCountsPolicy, TestSimilarityBase, 
> TestByteSlices, TestFlex, TestRecyclingByteBlockAllocator, TestCrash, 
> Test2BTerms, TestSearcherManager, TestDeterminism, TestDemo, 
> TestSpanExplanationsOfNonMatches, TestSubScorerFreqs, TestDocIdSet, 
> TestFieldValueFilter, TestSpanMultiTermQueryWrapper, TestTermVectors, 
> TestSurrogates, TestSimilarity2, Nested1, TestParallelReaderEmptyIndex, 
> TestShardSearching, TestBlockPostingsFormat3, TestPagedBytes, 
> TestCustomNorms, Before3, Before3, TestSegmentReader, TestMatchAllDocsQuery, 
> TestTopDocsCollector, TestNoMergeScheduler, TestDeletionPolicy, Nested1, 
> ThrowInUncaught, TestMultiTermConstantScore, TestPhraseQuery, 
> TestGraphTokenizers, TestBitVector, TestPerFieldPostingsFormat2, 
> TestSegmentTermEnum, TestVersion, TestNGramPhraseQuery, 
> TestBackwardsCompatibility3x, TestRegexpRandom2, TestDirectoryReaderReopen, 
> TestCompoundFile, TestBlockPostingsFormat, TestNRTThreads, TestPayloads, 
> TestTransactions, TestTermRangeQuery, TestSmallFloat, TestFSTs, TestNorms, 
> TestLookaheadTokenFilter, TestDuelingCodecs, TestAtomicUpdate, TestTermsEnum, 
> TestMultiMMap, TestTimeLimitingCollector, TestTopDocsMerge, TestNRTManager, 
> TestArrayUtil, TestBufferedIndexInput, TestIndexWriterForceMerge, 
> TestIndexWriterCommit, TestWeakIdentityMap, TestTypePromotion, 
> TestSimpleExplanations, TestStressIndexing, TestSnapshotDeletionPolicy, 
> TestNRTReaderWithThreads, TestTieredMergePolicy, TestConsistentFieldNumbers, 
> TestCrashCausesCorruptIndex, TestNumericUtils, 
> TestMultiValuedNumericRangeQuery, TestCharTermAttributeImpl, 
> TestRollingUpdates, TestPrefixInBooleanQuery, TestBytesRefHash, 
> TestRamUsageEstimatorOnWildAnimals, TestFieldCacheRangeFilter, 
> TestPayloadSpans, TestMixedCodecs, TestSegmentTermDocs, 
> TestFieldCacheSanityChecker, TestDoc, TestMergeSchedulerExternal, TestOmitTf, 
> TestDisjunctionMaxQuery, TestSimpleSearchEquivalence, Nested, Nested, Nested, 
> Nested, Nested, Nested, Nested, Nested, Nested, Nested, Nested, Nested, 
> Nested, Nested, Nested, Nested, Nested, Nested, Nested, Nested, Nested, 
> TestPayloadNearQuery, TestFilteredQuery, TestPayloadExplanations, 
> TestDocsAndPositions, TestTransactionRollback, TestCompiledAutomaton, 
> TestSentinelIntSet, TestIndexableField, TestBooleanQuery, TestAutomatonQuery, 
> TestComplexExplanationsOfNonMatches, TestRegexpQuery, TestDocCount, 
> TestSearchForDuplicates, TestFilteredSearch, NestedSetupChain, 
> NestedTeardownChain, Nested, Nested, TestDateFilter, TestSpansAdvanced, 
> TestConstantScoreQuery, TestDateTools, TestSearch, TestReaderClosed, 
> TestElevationComparator, TestAutomatonQueryUnicode, TestDateSort, 
> TestBinaryDocument, TestSpanFirstQuery, TestPriorityQueue, TestDocBoost, 
> TestMockCharFilter, TestIsCurrent, TestPrefixFilter, TestBitUtil, 
> TestVersionComparator, TestCachingTokenFilter, TestTermdocPerf, TestTerm, 
> TestLucene40PostingsFormat, TestAllFilesHaveCodecHeader, TestBagOfPositions]
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

Reply via email to