db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-5440) test failure in testBTreeForwardScan_fetchRows_resumeAfterWait_nonUnique_split(org.apache.derbyTesting.functionTests.tests.store.IndexSplitDeadlockTest)junit.framework.AssertionFailedError: expected:<1> but was:<0>
Date Sun, 09 Oct 2011 19:47:29 GMT

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

Knut Anders Hatlen updated DERBY-5440:
--------------------------------------

    Attachment: d5440.diff

The attached patch changes the test case in a way similar to DERBY-5278 to provide better
synchronization between the main test thread and the helper thread. It adds a barrier to ensure
that the main thread has started the index scan before the helper thread inserts new rows
at the beginning of the index (the problem in this bug seems to be that the rows have been
inserted before the scan started, and they unexpectedly show up in the scan result).

A helper class called Barrier is introduced (java.util.concurrent.CyclicBarrier provides the
same functionality, but cannot be used since it requires Java 5), and the patch rewrites the
fix for DERBY-5278 to use the new helper class too.
                
> test failure in testBTreeForwardScan_fetchRows_resumeAfterWait_nonUnique_split(org.apache.derbyTesting.functionTests.tests.store.IndexSplitDeadlockTest)junit.framework.AssertionFailedError:
expected:<1> but was:<0>
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5440
>                 URL: https://issues.apache.org/jira/browse/DERBY-5440
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.8.2.1
>         Environment: IBM iseries 6.1, Classic 1.6 JVM
>            Reporter: Myrna van Lunteren
>            Assignee: Knut Anders Hatlen
>            Priority: Trivial
>         Attachments: d5440.diff
>
>
> During the QA Cycle for 10.8.2.1 I also ran on a next version of the iseries OS, and
saw this failure. It did not reproduce when I reran the test by itself. The test has the following
comment:
>        // Give the other thread time to obtain the lock
>         Thread.sleep(1000);
>         // Perform an index scan. Will be blocked for a while when fetching
>         // the row where x=100, but should be able to resume the scan.
>         ResultSet rs = s.executeQuery(
>                 "select * from t --DERBY-PROPERTIES index=IDX");
>         for (int i = 0; i < 300; i++) {
>             assertTrue(rs.next());
>             assertEquals(i, rs.getInt(1));                           <==== this is
the line of the failure.
>         }
> I think this is a rather slow machine, and that's likely why I saw the failure, perhaps
the sleep wasn't long enough on this machine.
> Here is the stack trace:
> 1) testBTreeForwardScan_fetchRows_resumeAfterWait_nonUnique_split(org.apache.derbyTesting.functionTests.tests.store.IndexSplitDeadlockTest)junit.framework.AssertionFailedError:
expected:<1> but was:<0>
> 	at java.lang.Throwable.<init>(Throwable.java:195)
> 	at java.lang.Error.<init>(Error.java:49)
> 	at junit.framework.AssertionFailedError.<init>(AssertionFailedError.java:13)
> 	at org.apache.derbyTesting.functionTests.tests.store.IndexSplitDeadlockTest.testBTreeForwardScan_fetchRows_resumeAfterWait_nonUnique_split(IndexSplitDeadlockTest.java:526)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:27)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:92)
> 	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)
> derby.log has no useful info.

--
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

        

Mime
View raw message