[
https://issues.apache.org/jira/browse/DERBY-5866?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen updated DERBY-5866:
--------------------------------------
Attachment: fail2.zip
fail1.zip
testFiringOrder failed in the nightly testing:
http://download.java.net/javadesktop/derby/request_5582907/javadb-task-3743116.html
I've attached the contents of the fail directory (had to split it in two zip
files in order to work around the 10MB upload limit).
Stack trace:
{noformat}
junit.framework.AssertionFailedError: matching triggers need to be fired in
order creation:25,AFTER,DELETE,ROW. Triggers got fired in this order:[8,NO
CASCADE BEFORE,DELETE,STATEMENT, 21,NO CASCADE BEFORE,DELETE,STATEMENT, 54,NO
CASCADE BEFORE,DELETE,STATEMENT, 59,NO CASCADE BEFORE,DELETE,ROW, 64,NO CASCADE
BEFORE,DELETE,STATEMENT, 1,AFTER,DELETE,STATEMENT, 10,AFTER,DELETE,STATEMENT,
13,AFTER,DELETE,ROW, 18,AFTER,DELETE,ROW, 26,AFTER,DELETE,ROW,
25,AFTER,DELETE,ROW, 27,AFTER,DELETE,ROW, 29,AFTER,DELETE,STATEMENT,
30,AFTER,DELETE,STATEMENT, 41,AFTER,DELETE,ROW, 47,AFTER,DELETE,ROW,
52,AFTER,DELETE,STATEMENT, 58,AFTER,DELETE,ROW, 62,AFTER,DELETE,ROW]. Tiggers
got created in this order:CREATE TRIGGER TR0 AFTER INSERT ON T FOR EACH
STATEMENT CALL TRIGGER_LOG_INFO('0,AFTER,INSERT,STATEMENT')CREATE TRIGGER TR1
AFTER DELETE ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('1,AFTER,DELETE,STATEMENT')CREATE TRIGGER TR2 AFTER UPDATE ON
T FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('2,AFTER,UPDATE,STATEMENT')CREATE
TRIGGER TR3 AFTER INSERT ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('3,AFTER,INSERT,STATEMENT')CREATE TRIGGER TR4 AFTER UPDATE ON
T FOR EACH ROW CALL TRIGGER_LOG_INFO('4,AFTER,UPDATE,ROW')CREATE TRIGGER TR5
AFTER UPDATE ON T FOR EACH ROW CALL
TRIGGER_LOG_INFO('5,AFTER,UPDATE,ROW')CREATE TRIGGER TR6 NO CASCADE BEFORE
UPDATE ON T FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('6,NO CASCADE
BEFORE,UPDATE,STATEMENT')CREATE TRIGGER TR7 NO CASCADE BEFORE INSERT ON T FOR
EACH ROW CALL TRIGGER_LOG_INFO('7,NO CASCADE BEFORE,INSERT,ROW')CREATE TRIGGER
TR8 NO CASCADE BEFORE DELETE ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('8,NO CASCADE BEFORE,DELETE,STATEMENT')CREATE TRIGGER TR9 NO
CASCADE BEFORE UPDATE ON T FOR EACH ROW CALL TRIGGER_LOG_INFO('9,NO CASCADE
BEFORE,UPDATE,ROW')CREATE TRIGGER TR10 AFTER DELETE ON T FOR EACH STATEMENT
CALL TRIGGER_LOG_INFO('10,AFTER,DELETE,STATEMENT')CREATE TRIGGER TR11 NO
CASCADE BEFORE INSERT ON T FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('11,NO
CASCADE BEFORE,INSERT,STATEMENT')CREATE TRIGGER TR12 NO CASCADE BEFORE UPDATE
ON T FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('12,NO CASCADE
BEFORE,UPDATE,STATEMENT')CREATE TRIGGER TR13 AFTER DELETE ON T FOR EACH ROW
CALL TRIGGER_LOG_INFO('13,AFTER,DELETE,ROW')CREATE TRIGGER TR14 AFTER UPDATE ON
T FOR EACH ROW CALL TRIGGER_LOG_INFO('14,AFTER,UPDATE,ROW')CREATE TRIGGER TR15
AFTER UPDATE ON T FOR EACH ROW CALL
TRIGGER_LOG_INFO('15,AFTER,UPDATE,ROW')CREATE TRIGGER TR16 AFTER INSERT ON T
FOR EACH ROW CALL TRIGGER_LOG_INFO('16,AFTER,INSERT,ROW')CREATE TRIGGER TR17
AFTER INSERT ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('17,AFTER,INSERT,STATEMENT')CREATE TRIGGER TR18 AFTER DELETE
ON T FOR EACH ROW CALL TRIGGER_LOG_INFO('18,AFTER,DELETE,ROW')CREATE TRIGGER
TR19 NO CASCADE BEFORE UPDATE ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('19,NO CASCADE BEFORE,UPDATE,STATEMENT')CREATE TRIGGER TR20
AFTER INSERT ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('20,AFTER,INSERT,STATEMENT')CREATE TRIGGER TR21 NO CASCADE
BEFORE DELETE ON T FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('21,NO CASCADE
BEFORE,DELETE,STATEMENT')CREATE TRIGGER TR22 NO CASCADE BEFORE INSERT ON T FOR
EACH ROW CALL TRIGGER_LOG_INFO('22,NO CASCADE BEFORE,INSERT,ROW')CREATE TRIGGER
TR23 AFTER UPDATE ON T FOR EACH ROW CALL
TRIGGER_LOG_INFO('23,AFTER,UPDATE,ROW')CREATE TRIGGER TR24 NO CASCADE BEFORE
INSERT ON T FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('24,NO CASCADE
BEFORE,INSERT,STATEMENT')CREATE TRIGGER TR25 AFTER DELETE ON T FOR EACH ROW
CALL TRIGGER_LOG_INFO('25,AFTER,DELETE,ROW')CREATE TRIGGER TR26 AFTER DELETE ON
T FOR EACH ROW CALL TRIGGER_LOG_INFO('26,AFTER,DELETE,ROW')CREATE TRIGGER TR27
AFTER DELETE ON T FOR EACH ROW CALL
TRIGGER_LOG_INFO('27,AFTER,DELETE,ROW')CREATE TRIGGER TR28 NO CASCADE BEFORE
UPDATE ON T FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('28,NO CASCADE
BEFORE,UPDATE,STATEMENT')CREATE TRIGGER TR29 AFTER DELETE ON T FOR EACH
STATEMENT CALL TRIGGER_LOG_INFO('29,AFTER,DELETE,STATEMENT')CREATE TRIGGER TR30
AFTER DELETE ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('30,AFTER,DELETE,STATEMENT')CREATE TRIGGER TR31 NO CASCADE
BEFORE UPDATE ON T FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('31,NO CASCADE
BEFORE,UPDATE,STATEMENT')CREATE TRIGGER TR32 NO CASCADE BEFORE INSERT ON T FOR
EACH ROW CALL TRIGGER_LOG_INFO('32,NO CASCADE BEFORE,INSERT,ROW')CREATE TRIGGER
TR33 NO CASCADE BEFORE INSERT ON T FOR EACH ROW CALL TRIGGER_LOG_INFO('33,NO
CASCADE BEFORE,INSERT,ROW')CREATE TRIGGER TR34 NO CASCADE BEFORE UPDATE ON T
FOR EACH ROW CALL TRIGGER_LOG_INFO('34,NO CASCADE BEFORE,UPDATE,ROW')CREATE
TRIGGER TR35 NO CASCADE BEFORE UPDATE ON T FOR EACH ROW CALL
TRIGGER_LOG_INFO('35,NO CASCADE BEFORE,UPDATE,ROW')CREATE TRIGGER TR36 NO
CASCADE BEFORE UPDATE ON T FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('36,NO
CASCADE BEFORE,UPDATE,STATEMENT')CREATE TRIGGER TR37 NO CASCADE BEFORE UPDATE
ON T FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('37,NO CASCADE
BEFORE,UPDATE,STATEMENT')CREATE TRIGGER TR38 AFTER INSERT ON T FOR EACH ROW
CALL TRIGGER_LOG_INFO('38,AFTER,INSERT,ROW')CREATE TRIGGER TR39 AFTER INSERT ON
T FOR EACH ROW CALL TRIGGER_LOG_INFO('39,AFTER,INSERT,ROW')CREATE TRIGGER TR40
AFTER UPDATE ON T FOR EACH ROW CALL
TRIGGER_LOG_INFO('40,AFTER,UPDATE,ROW')CREATE TRIGGER TR41 AFTER DELETE ON T
FOR EACH ROW CALL TRIGGER_LOG_INFO('41,AFTER,DELETE,ROW')CREATE TRIGGER TR42 NO
CASCADE BEFORE INSERT ON T FOR EACH ROW CALL TRIGGER_LOG_INFO('42,NO CASCADE
BEFORE,INSERT,ROW')CREATE TRIGGER TR43 AFTER INSERT ON T FOR EACH ROW CALL
TRIGGER_LOG_INFO('43,AFTER,INSERT,ROW')CREATE TRIGGER TR44 AFTER INSERT ON T
FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('44,AFTER,INSERT,STATEMENT')CREATE
TRIGGER TR45 AFTER INSERT ON T FOR EACH ROW CALL
TRIGGER_LOG_INFO('45,AFTER,INSERT,ROW')CREATE TRIGGER TR46 AFTER INSERT ON T
FOR EACH ROW CALL TRIGGER_LOG_INFO('46,AFTER,INSERT,ROW')CREATE TRIGGER TR47
AFTER DELETE ON T FOR EACH ROW CALL
TRIGGER_LOG_INFO('47,AFTER,DELETE,ROW')CREATE TRIGGER TR48 AFTER UPDATE ON T
FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('48,AFTER,UPDATE,STATEMENT')CREATE
TRIGGER TR49 AFTER INSERT ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('49,AFTER,INSERT,STATEMENT')CREATE TRIGGER TR50 AFTER UPDATE
ON T FOR EACH ROW CALL TRIGGER_LOG_INFO('50,AFTER,UPDATE,ROW')CREATE TRIGGER
TR51 NO CASCADE BEFORE UPDATE ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('51,NO CASCADE BEFORE,UPDATE,STATEMENT')CREATE TRIGGER TR52
AFTER DELETE ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('52,AFTER,DELETE,STATEMENT')CREATE TRIGGER TR53 AFTER INSERT
ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('53,AFTER,INSERT,STATEMENT')CREATE TRIGGER TR54 NO CASCADE
BEFORE DELETE ON T FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('54,NO CASCADE
BEFORE,DELETE,STATEMENT')CREATE TRIGGER TR55 NO CASCADE BEFORE INSERT ON T FOR
EACH ROW CALL TRIGGER_LOG_INFO('55,NO CASCADE BEFORE,INSERT,ROW')CREATE TRIGGER
TR56 NO CASCADE BEFORE INSERT ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('56,NO CASCADE BEFORE,INSERT,STATEMENT')CREATE TRIGGER TR57
AFTER INSERT ON T FOR EACH ROW CALL
TRIGGER_LOG_INFO('57,AFTER,INSERT,ROW')CREATE TRIGGER TR58 AFTER DELETE ON T
FOR EACH ROW CALL TRIGGER_LOG_INFO('58,AFTER,DELETE,ROW')CREATE TRIGGER TR59 NO
CASCADE BEFORE DELETE ON T FOR EACH ROW CALL TRIGGER_LOG_INFO('59,NO CASCADE
BEFORE,DELETE,ROW')CREATE TRIGGER TR60 NO CASCADE BEFORE UPDATE ON T FOR EACH
STATEMENT CALL TRIGGER_LOG_INFO('60,NO CASCADE BEFORE,UPDATE,STATEMENT')CREATE
TRIGGER TR61 AFTER UPDATE ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('61,AFTER,UPDATE,STATEMENT')CREATE TRIGGER TR62 AFTER DELETE
ON T FOR EACH ROW CALL TRIGGER_LOG_INFO('62,AFTER,DELETE,ROW')CREATE TRIGGER
TR63 AFTER UPDATE ON T FOR EACH STATEMENT CALL
TRIGGER_LOG_INFO('63,AFTER,UPDATE,STATEMENT')CREATE TRIGGER TR64 NO CASCADE
BEFORE DELETE ON T FOR EACH STATEMENT CALL TRIGGER_LOG_INFO('64,NO CASCADE
BEFORE,DELETE,STATEMENT')CREATE TRIGGER TR65 NO CASCADE BEFORE INSERT ON T FOR
EACH ROW CALL TRIGGER_LOG_INFO('65,NO CASCADE BEFORE,INSERT,ROW')
at
org.apache.derbyTesting.functionTests.tests.lang.TriggerTest.assertFiringOrder(TriggerTest.java:572)
at
org.apache.derbyTesting.functionTests.tests.lang.TriggerTest.assertFiringOrder(TriggerTest.java:527)
at
org.apache.derbyTesting.functionTests.tests.lang.TriggerTest.testFiringOrder(TriggerTest.java:341)
at
org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:117)
at
org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:439)
at
org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:456)
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)
{noformat}
When I query the SYS.SYSTRIGGERS table with an optimizer override to force it
to use the same index as the trigger firing code (an index on (TABLEID,
CREATIONTIMESTAMP)), I see the this result:
{noformat}
ij> select cast(triggername as char(4)), creationtimestamp from sys.systriggers
--derby-properties index=SYSTRIGGERS_INDEX3
> ;
1 |CREATIONTIMESTAMP
----------------------------------
TR0 |2013-10-16 22:11:44.457
TR1 |2013-10-16 22:11:44.457
TR2 |2013-10-16 22:11:44.457
TR3 |2013-10-16 22:11:44.472
TR4 |2013-10-16 22:11:44.472
TR5 |2013-10-16 22:11:44.472
TR6 |2013-10-16 22:11:44.472
TR7 |2013-10-16 22:11:44.488
TR8 |2013-10-16 22:11:44.488
TR9 |2013-10-16 22:11:44.504
TR10|2013-10-16 22:11:44.504
TR11|2013-10-16 22:11:44.504
TR12|2013-10-16 22:11:44.519
TR13|2013-10-16 22:11:44.519
TR14|2013-10-16 22:11:44.535
TR15|2013-10-16 22:11:44.535
TR16|2013-10-16 22:11:44.55
TR17|2013-10-16 22:11:44.55
TR18|2013-10-16 22:11:44.566
TR19|2013-10-16 22:11:44.582
TR20|2013-10-16 22:11:44.582
TR21|2013-10-16 22:11:44.597
TR22|2013-10-16 22:11:44.613
TR23|2013-10-16 22:11:44.629
TR24|2013-10-16 22:11:44.644
TR26|2013-10-16 22:11:44.66
TR25|2013-10-16 22:11:44.66
TR27|2013-10-16 22:11:44.675
TR28|2013-10-16 22:11:44.691
TR29|2013-10-16 22:11:44.707
TR30|2013-10-16 22:11:44.722
TR31|2013-10-16 22:11:44.738
TR32|2013-10-16 22:11:44.754
TR33|2013-10-16 22:11:44.769
TR34|2013-10-16 22:11:44.785
TR35|2013-10-16 22:11:44.8
TR36|2013-10-16 22:11:44.816
TR37|2013-10-16 22:11:44.832
TR38|2013-10-16 22:11:44.847
TR39|2013-10-16 22:11:44.863
TR40|2013-10-16 22:11:44.879
TR41|2013-10-16 22:11:44.894
TR42|2013-10-16 22:11:44.91
TR43|2013-10-16 22:11:44.941
TR44|2013-10-16 22:11:44.957
TR45|2013-10-16 22:11:44.972
TR46|2013-10-16 22:11:45.004
TR47|2013-10-16 22:11:45.035
TR48|2013-10-16 22:11:45.05
TR49|2013-10-16 22:11:45.082
TR50|2013-10-16 22:11:45.097
TR51|2013-10-16 22:11:45.128
TR52|2013-10-16 22:11:45.144
TR53|2013-10-16 22:11:45.175
TR54|2013-10-16 22:11:45.191
TR55|2013-10-16 22:11:45.222
TR56|2013-10-16 22:11:45.253
TR57|2013-10-16 22:11:45.269
TR58|2013-10-16 22:11:45.3
TR59|2013-10-16 22:11:45.316
TR60|2013-10-16 22:11:45.347
TR61|2013-10-16 22:11:45.363
TR62|2013-10-16 22:11:45.394
TR63|2013-10-16 22:11:45.41
TR64|2013-10-16 22:11:45.457
TR65|2013-10-16 22:11:45.488
TR2 |2013-10-16 22:11:37.177
67 rows selected
{noformat}
Notice the following:
- many triggers have the same creation timestamp
- TR25 and TR26 come out in reversed order (same timestamp, assertion text says
TR25 was created first, index has TR26 first)
So it seems like creation timestamps being equal is indeed what's causing this
instability.
>
> 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.3
> Environment: Windows IBM 1.6 10.10.0.0 alpha - (1361856)
> Reporter: Kathey Marsden
> Assignee: Mamta A. Satoor
> Labels: derby_triage10_11
> Fix For: 10.8.3.1, 10.9.2.2, 10.10.1.3, 10.11.0.0
>
> Attachments: error-stacktrace.out, fail1.zip, fail2.zip
>
>
> 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 was sent by Atlassian JIRA
(v6.1#6144)