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

Reply via email to