lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LUCENE-3463) Jenkins trunk tests (nightly only) fail quite often with OOM in Automaton/FST tests
Date Sat, 01 Oct 2011 10:23:45 GMT

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

Uwe Schindler commented on LUCENE-3463:
---------------------------------------

Robert: Its indeed strange, but I solved the problem reproducible. The CodecProvider is always
the same, so it uses only one time the random seeds per class. Inside the annotated test methods,
LTC simply tells RandomCodecProvider, that it should temporarily not return several codecs.
This consumes no randomness and is reproducible, as it is done before/after each test. 

This was implemented by a callback from the testrunner to a static LTC method (beforeTestMethod/afterTestMethod),
that gets the FrameworkMethod instance of the running test and will change the codec provider
accordingly, if it detects the annotation on the FrameworkMethod. On shutdown it reverses
the change (the callback is called from within a finalization block, so ensured to do the
cleanup).

This approach is somehow a duplicate of the standard @Before and @After, but those aleady
available ones miss the FrameworkMethod parameter passed to the method, so it's hard to detect
the currently running test.
                
> Jenkins trunk tests (nightly only) fail quite often with OOM in Automaton/FST tests
> -----------------------------------------------------------------------------------
>
>                 Key: LUCENE-3463
>                 URL: https://issues.apache.org/jira/browse/LUCENE-3463
>             Project: Lucene - Java
>          Issue Type: Bug
>    Affects Versions: 4.0
>            Reporter: Uwe Schindler
>             Fix For: 4.0
>
>         Attachments: LUCENE-3463.patch, LUCENE-3463.patch, LUCENE-3463.patch, LUCENE-3463.patch
>
>
> The nightly Job Lucene-trunk quite often fails with OOM (in several methods, not always
in the same test):
> Example from last night (this time a huge Automaton):
> {noformat}
> [junit] java.lang.OutOfMemoryError: Java heap space
> [junit] Dumping heap to /home/hudson/hudson-slave/workspace/Lucene-trunk/heapdumps/java_pid38855.hprof
...
> [junit] Heap dump file created [86965954 bytes in 1.186 secs]
> [junit] Testsuite: org.apache.lucene.index.TestTermsEnum
> [junit] Testcase: testIntersectRandom(org.apache.lucene.index.TestTermsEnum):	Caused
an ERROR
> [junit] Java heap space
> [junit] java.lang.OutOfMemoryError: Java heap space
> [junit] 	at org.apache.lucene.util.automaton.RunAutomaton.<init>(RunAutomaton.java:128)
> [junit] 	at org.apache.lucene.util.automaton.ByteRunAutomaton.<init>(ByteRunAutomaton.java:28)
> [junit] 	at org.apache.lucene.util.automaton.CompiledAutomaton.<init>(CompiledAutomaton.java:134)
> [junit] 	at org.apache.lucene.index.TestTermsEnum.testIntersectRandom(TestTermsEnum.java:266)
> [junit] 	at org.apache.lucene.util.LuceneTestCase$2$1.evaluate(LuceneTestCase.java:611)
> [junit] 	at org.apache.lucene.util.LuceneTestCaseRunner.runChild(LuceneTestCaseRunner.java:148)
> [junit] 	at org.apache.lucene.util.LuceneTestCaseRunner.runChild(LuceneTestCaseRunner.java:50)
> [junit] 
> [junit] 
> [junit] Tests run: 6, Failures: 0, Errors: 1, Time elapsed: 11.699 sec
> {noformat}
> Other traces:
> {noformat}
> [junit] Testsuite: org.apache.lucene.util.fst.TestFSTs
> [junit] Testcase: testRealTerms(org.apache.lucene.util.fst.TestFSTs):	Caused an ERROR
> [junit] Java heap space
> [junit] java.lang.OutOfMemoryError: Java heap space
> [junit] 	at org.apache.lucene.util.ArrayUtil.grow(ArrayUtil.java:338)
> [junit] 	at org.apache.lucene.util.fst.FST$BytesWriter.writeBytes(FST.java:927)
> [junit] 	at org.apache.lucene.util.fst.ByteSequenceOutputs.write(ByteSequenceOutputs.java:113)
> [junit] 	at org.apache.lucene.util.fst.ByteSequenceOutputs.write(ByteSequenceOutputs.java:32)
> [junit] 	at org.apache.lucene.util.fst.FST.addNode(FST.java:451)
> [junit] 	at org.apache.lucene.util.fst.NodeHash.add(NodeHash.java:122)
> [junit] 	at org.apache.lucene.util.fst.Builder.compileNode(Builder.java:180)
> [junit] 	at org.apache.lucene.util.fst.Builder.finish(Builder.java:495)
> [junit] 	at org.apache.lucene.index.codecs.memory.MemoryCodec$TermsWriter.finish(MemoryCodec.java:232)
> [junit] 	at org.apache.lucene.index.FreqProxTermsWriterPerField.flush(FreqProxTermsWriterPerField.java:414)
> [junit] 	at org.apache.lucene.index.FreqProxTermsWriter.flush(FreqProxTermsWriter.java:92)
> [junit] 	at org.apache.lucene.index.TermsHash.flush(TermsHash.java:117)
> [junit] 	at org.apache.lucene.index.DocInverter.flush(DocInverter.java:80)
> [junit] 	at org.apache.lucene.index.DocFieldProcessor.flush(DocFieldProcessor.java:78)
> [junit] 	at org.apache.lucene.index.DocumentsWriterPerThread.flush(DocumentsWriterPerThread.java:472)
> [junit] 	at org.apache.lucene.index.DocumentsWriter.doFlush(DocumentsWriter.java:420)
> [junit] 	at org.apache.lucene.index.DocumentsWriter.flushAllThreads(DocumentsWriter.java:568)
> [junit] 	at org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:366)
> [junit] 	at org.apache.lucene.index.IndexReader.open(IndexReader.java:317)
> [junit] 	at org.apache.lucene.util.fst.TestFSTs.testRealTerms(TestFSTs.java:1034)
> [junit] 	at org.apache.lucene.util.LuceneTestCase$2$1.evaluate(LuceneTestCase.java:611)
> {noformat}
> or:
> {noformat}
> [junit] Testsuite: org.apache.lucene.util.automaton.TestCompiledAutomaton
> [junit] Testcase: testRandom(org.apache.lucene.util.automaton.TestCompiledAutomaton):
Caused an ERROR
> [junit] Java heap space
> [junit] java.lang.OutOfMemoryError: Java heap space
> [junit] 	at org.apache.lucene.util.automaton.RunAutomaton.<init>(RunAutomaton.java:128)
> [junit] 	at org.apache.lucene.util.automaton.ByteRunAutomaton.<init>(ByteRunAutomaton.java:28)
> [junit] 	at org.apache.lucene.util.automaton.CompiledAutomaton.<init>(CompiledAutomaton.java:134)
> [junit] 	at org.apache.lucene.util.automaton.TestCompiledAutomaton.build(TestCompiledAutomaton.java:39)
> [junit] 	at org.apache.lucene.util.automaton.TestCompiledAutomaton.testTerms(TestCompiledAutomaton.java:55)
> [junit] 	at org.apache.lucene.util.automaton.TestCompiledAutomaton.testRandom(TestCompiledAutomaton.java:101)
> [junit] 	at org.apache.lucene.util.LuceneTestCase$2$1.evaluate(LuceneTestCase.java:611)
> [junit] 	at org.apache.lucene.util.LuceneTestCaseRunner.runChild(LuceneTestCaseRunner.java:148)
> [junit] 	at org.apache.lucene.util.LuceneTestCaseRunner.runChild(LuceneTestCaseRunner.java:50)
> {noformat}
> Almost every nightly test fails, history: [https://builds.apache.org/job/Lucene-trunk]
> We should maybe raise the max heap space or reduce doc counts/...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

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


Mime
View raw message