Issue Details (XML | Word | Printable)

Key: LUCENE-1238
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Minor Minor
Assignee: Doron Cohen
Reporter: Doron Cohen
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Lucene - Java

intermittent failures of TestTimeLimitedCollector.testTimeoutMultiThreaded in nightly tests

Created: 18/Mar/08 05:34 AM   Updated: 18/Mar/08 09:08 PM
Return to search
Component/s: None
Affects Version/s: 2.4
Fix Version/s: None

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works LUCENE-1238.patch 2008-03-18 07:44 AM Doron Cohen 11 kB

Lucene Fields: Patch Available
Resolution Date: 18/Mar/08 09:08 PM


 Description  « Hide
Occasionly TestTimeLimitedCollector.testTimeoutMultiThreaded fails. e.g. with this output:
   [junit] ------------- Standard Error -----------------
   [junit] Exception in thread "Thread-97" junit.framework.AssertionFailedError: no hits found!
   [junit]     at junit.framework.Assert.fail(Assert.java:47)
   [junit]     at junit.framework.Assert.assertTrue(Assert.java:20)
   [junit]     at org.apache.lucene.search.TestTimeLimitedCollector.doTestTimeout(TestTimeLimitedCollector.java:152)
   [junit]     at org.apache.lucene.search.TestTimeLimitedCollector.access$100(TestTimeLimitedCollector.java:38)
   [junit]     at org.apache.lucene.search.TestTimeLimitedCollector$1.run(TestTimeLimitedCollector.java:231)
   [junit] Exception in thread "Thread-85" junit.framework.AssertionFailedError: no hits found!
   [junit]     at junit.framework.Assert.fail(Assert.java:47)
   [junit]     at junit.framework.Assert.assertTrue(Assert.java:20)
   [junit]     at org.apache.lucene.search.TestTimeLimitedCollector.doTestTimeout(TestTimeLimitedCollector.java:152)
   [junit]     at org.apache.lucene.search.TestTimeLimitedCollector.access$100(TestTimeLimitedCollector.java:38)
   [junit]     at org.apache.lucene.search.TestTimeLimitedCollector$1.run(TestTimeLimitedCollector.java:231)
   [junit] ------------- ---------------- ---------------
   [junit] Testcase: testTimeoutMultiThreaded(org.apache.lucene.search.TestTimeLimitedCollector):      FAILED
   [junit] some threads failed! expected:<50> but was:<48>
   [junit] junit.framework.AssertionFailedError: some threads failed! expected:<50> but was:<48>
   [junit]     at org.apache.lucene.search.TestTimeLimitedCollector.doTestMultiThreads(TestTimeLimitedCollector.java:255)
   [junit]     at org.apache.lucene.search.TestTimeLimitedCollector.testTimeoutMultiThreaded(TestTimeLimitedCollector.java:220)
   [junit]

Problem either in test or in TimeLimitedCollector.



 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Doron Cohen added a comment - 18/Mar/08 07:23 AM
fixed typo in summary.

Doron Cohen added a comment - 18/Mar/08 07:44 AM
Problem was in test.

However fix adds a greediness option to time-limited-collector (TLC):

  • A greedy TLC upon timeout would allow the wrapped collector to
    collect current doc and only then throw the timeout exception.
  • A non greedy TLC (the default, as before) will immediately throw the exception.

For the test, setting to greedy allows to require that at least one doc was collected.

I addition this patch:

  • Adds missing javadocs for TLC constructor.
  • Increase "slack" in timeout requirements in the test.
    This is to prevent further noise in this:
    HLC is required to timeout "not too soon and not too late", but in a busy machine
    the "not too late" part is problematic to test.
    I considered to removing this part (not too late), but decided to leave it in for now.
  • Adds a test for the setGreedy() option.

All TLC tests pass.


Doron Cohen added a comment - 18/Mar/08 06:01 PM
I intend to commit this later today.

Doron Cohen added a comment - 18/Mar/08 09:08 PM
Committed.