[
https://issues.apache.org/jira/browse/DERBY-6001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13502717#comment-13502717
]
Knut Anders Hatlen commented on DERBY-6001:
-------------------------------------------
This happened again. With the improved diagnostics, I found in the log that one
of the threads failed with the expected deadlock exception, and the other
thread failed with a timeout exception. So it seems like the difference between
the deadlock timeout and the regular wait timeout is too small on this
platform. The deadlock is detected, as expected, but the chosen victim is not
terminated quickly enough to prevent the other transaction from timing out.
Since this test case is not expected to produce a timeout, I think we can
increase the lock timeout without slowing it down in the common case. That
should give slower machines more time to kill the victim before the timeout
expires. Faster machines don't need to wait for the timeout to happen, so they
should be unaffected.
> 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
> Attachments: d6001-1a-diagnostics.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