[
https://issues.apache.org/jira/browse/DERBY-6001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen updated DERBY-6001:
--------------------------------------
Attachment: d6001-2a-waitTimeout.diff
Attaching d6001-2a-waitTimeout.diff which increases the wait timeout for
testDeadlockTimeout to 60 seconds. The test still completes in just a few
seconds, as the higher timeout just gives it a larger window, it doesn't
require the test to use the entire available time slot.
Since the test now uses different timeout values for testLockTimeout and
testDeadlockTimeout, I also reduced the wait timeout for the former test case
to speed it up. That test case is single-threaded and not timing sensitive, so
reducing the timeout should not reduce the chance of success.
I also reduced the deadlock timeout for testDeadlockTimeout to 1 second, as it
is the difference between the wait timeout and the deadlock timeout that's
determining the chance of success, not the size of the deadlock timeout. So we
could just as well keep it short to make the test complete faster (even if it's
just one second faster).
I'm running the test in a loop on one of the machines where I've seen the
problem (successfully so far). The problem happens a lot less frequently when
the test runs standalone, though, so I'm sure that necessarily will help
finding out if it's fixed.
(suites.All takes 15 hours on that platform, so I'm not going to run suites.All
in a loop to verify the fix...)
> ErrorMessageTest assert failure: Only one of the waiters should be aborted
> --------------------------------------------------------------------------
>
> Key: DERBY-6001
> URL: https://issues.apache.org/jira/browse/DERBY-6001
> Project: Derby
> Issue Type: Bug
> Components: Test
> Affects Versions: 10.10.0.0
> Environment: Java SE Embedded 7u6 for ARM
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Attachments: d6001-1a-diagnostics.diff, d6001-2a-waitTimeout.diff
>
>
> I occasionally see this test failure on some ARM devices:
> junit.framework.AssertionFailedError: Only one of the waiters should be
> aborted
> at
> org.apache.derbyTesting.functionTests.tests.lang.ErrorMessageTest.testDeadlockTimeout(ErrorMessageTest.java:206)
> at
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:117)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:424)
> at
> org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:441)
> 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)
> It's probably timing-dependent, since the failing test case runs two threads,
> and the devices where it's seen are slow compared to most other test servers.
--
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