[
https://issues.apache.org/jira/browse/DERBY-5866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13640939#comment-13640939
]
Mamta A. Satoor commented on DERBY-5866:
----------------------------------------
The purpose of the failing test is to check that the triggers get fired in the
order they were created. We have been seeing intermittent failures in this
test. It failed in 10.10 codeline recently.
http://people.apache.org/~myrnavl/derby_test_results/v10_10/windows/testlog/ibm16/1471229-suites.All_diff.txt
Last week, I had added some debugging info into the test to show the order in
which the triggers got fired when the test finds that the triggers have fired
in a order different than the order of creation. I have copied that information
from the last failed run below(with some edits to make the message more
readable)
matching triggers need to be fired in order creation:
11,NO CASCADE BEFORE,UPDATE,STATEMENT.
Triggers got fired in this order:
4,NO CASCADE BEFORE,UPDATE,STATEMENT,
13,NO CASCADE BEFORE,UPDATE,ROW,
11,NO CASCADE BEFORE,UPDATE,STATEMENT,
18,NO CASCADE BEFORE,UPDATE,ROW,
24,NO CASCADE BEFORE,UPDATE,STATEMENT,
26,NO CASCADE BEFORE,UPDATE,STATEMENT,
29,NO CASCADE BEFORE,UPDATE,ROW,
33,NO CASCADE BEFORE,UPDATE,ROW
As per the list "Triggers got fired in this order:", it appears that trigger 13
got fired before trigger 11 and that causes the test to fail. Notice that all
of these trigger are for UPDATE and they are all BEFORE triggers but they are a
mix of STATEMENT and ROW triggers. If my understanding if correct, then
STATEMENT and ROW triggers should get fired in the order they were created ie I
do not think all the STATEMENT triggers have to fire before the ROW triggers
can fire. If that is correct, then I am not sure why trigger number 13 got
fired before trigger number 11. I am thinking of putting another piece of
debugging info in case of failure, which is to print the order in which the
triggers got created. I do not believe that trigger 13 could have gotten
created before trigger 13(as per TriggerTest.createRandomTriggers method) but
it might be helpful to have that information too during the test failure. In
the mean time, I will try to hand create a database with the BEFORE UPDATE
triggers listed above and see if I can somehow reproduce the problem. I will
highly appreciate if anyone on the list has any ideas based on the information
provided. Thanks
>
> testFiringConstraintOrder(org.apache.derbyTesting.functionTests.tests.lang.TriggerTest)junit.framework.AssertionFailedError:
> matching triggers need to be fired in order creation:1,NO CASCADE
> BEFORE,DELETE,ROW
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-5866
> URL: https://issues.apache.org/jira/browse/DERBY-5866
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.10.1.1, 10.10.1.2
> Environment: Windows IBM 1.6 10.10.0.0 alpha - (1361856)
> Reporter: Kathey Marsden
> Assignee: Mamta A. Satoor
> Labels: derby_triage10_10
> Fix For: 10.8.3.1, 10.9.2.2, 10.10.1.2, 10.11.0.0
>
>
> I saw this failure in the IBM nightlies on 7/15. The subsequent night did not
> fail, so appears intermittent
> http://cloudsoft.usca.ibm.com/intranet/nightlies/derbywinvm/JarResults.2012-07-15/ibm16_suites.All/suites.All.out
> 1)
> testFiringConstraintOrder(org.apache.derbyTesting.functionTests.tests.lang.TriggerTest)junit.framework.AssertionFailedError:
> matching triggers need to be fired in order creation:1,NO CASCADE
> BEFORE,DELETE,ROW
> at
> org.apache.derbyTesting.functionTests.tests.lang.TriggerTest.assertFiringOrder(TriggerTest.java:560)
> at
> org.apache.derbyTesting.functionTests.tests.lang.TriggerTest.testFiringConstraintOrder(TriggerTest.java:500)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> 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)
--
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