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

Knut Anders Hatlen updated DERBY-2799:
--------------------------------------

    Attachment: derby-2799.diff

The attached patch fixes the problem by adding another synchronization point to 
the test. When a test has printed "Starting thread", it now waits until all 
other threads have done the same before it continues. The patch also adds a 
main method to LangHarnessJavaTest, similar to the one in LangScripts, to allow 
easier testing of a single harness test.

> Intermittent failure in lang/deadlockMode.java
> ----------------------------------------------
>
>                 Key: DERBY-2799
>                 URL: https://issues.apache.org/jira/browse/DERBY-2799
>             Project: Derby
>          Issue Type: Bug
>          Components: Regression Test Failure, Test
>    Affects Versions: 10.3.0.0
>            Reporter: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: derby-2799.diff
>
>
> I sometimes see the deadlockMode test fail with this error:
> There was 1 failure:
> 1) 
> deadlockMode(org.apache.derbyTesting.functionTests.tests.lang.LangHarnessJavaTest)junit.framework.ComparisonFailure:
>  Output at line 18 expected:<[Starting t]hread> but was:<[Done T]hread>
>         at 
> org.apache.derbyTesting.functionTests.util.CanonTestCase.compareCanon(CanonTestCase.java:100)
>         at 
> org.apache.derbyTesting.functionTests.util.HarnessJavaTest.runTest(HarnessJavaTest.java:91)
>         at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:88)
>         at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>         at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>         at junit.extensions.TestSetup.run(TestSetup.java:25)
>         at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>         at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>         at junit.extensions.TestSetup.run(TestSetup.java:25)
>         at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
>         at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
>         at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
>         at junit.extensions.TestSetup.run(TestSetup.java:25)
>         at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
>         at 
> org.apache.derbyTesting.functionTests.tests.lang.LangHarnessJavaTest.main(LangHarnessJavaTest.java:102)
> Similar failures have also been seen in the nightly testing, for instance 
> <URL:http://dbtg.thresher.com/derby/test/trunk15/jvm1.5/testing/testlog/Linux-2.6.17-1.2174_FC5_i686-i686/484695-derbyall_diff.txt>.
> It looks like a timing issue between the threads in the test. The test starts 
> 20 threads, and each thread prints "Starting thread" when it starts and "Done 
> Thread" when it ends. If a thread finishes before all threads have started, 
> the lines in the output are mixed, and the test fails.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to