You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Kathey Marsden (JIRA)" <de...@db.apache.org> on 2006/08/07 16:11:55 UTC

[jira] Resolved: (DERBY-1603) ERROR 54038: "Maximum depth of nested triggers was exceeded" occurs when trigger fires after upating 10.1.2.5 jars to 10.1.3.1

     [ http://issues.apache.org/jira/browse/DERBY-1603?page=all ]

Kathey Marsden resolved DERBY-1603.
-----------------------------------

    Resolution: Invalid

This issue is being closed as invalid and a new issue DERBY-1652 filed with the correct description. The actual problem is that the exception is not being thrown before upgrade.

> ERROR 54038: "Maximum depth of nested triggers was exceeded" occurs when trigger fires after upating 10.1.2.5 jars to 10.1.3.1
> ------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-1603
>                 URL: http://issues.apache.org/jira/browse/DERBY-1603
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.1.3.1, 10.1.3.0, 10.1.2.1, 10.1.1.0, 10.0.2.1, 10.0.2.0
>            Reporter: Kathey Marsden
>         Assigned To: Yip Ng
>            Priority: Critical
>             Fix For: 10.2.0.0
>
>         Attachments: derby.log
>
>
> trigger fails after upgrading Cloudscape version 10.1.3.1
> 10.1  repro with the embedded driver.  
> Execute the following in ij with version 10.1.2.5 - (409283)
> CREATE TABLE "TEST" (                                           
>      
> "TESTID" INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START 
> WITH 1,
> INCREMENT BY 1),                                                
>      
> "INFO" INTEGER NOT NULL,                                        
>      
> "TIMESTAMP" TIMESTAMP NOT NULL DEFAULT 
> '1980-01-01-00.00.00.000000'  
> );                                                              
>      
> CREATE TRIGGER UPDATE_TEST                            
>  AFTER UPDATE ON TEST                                 
>  REFERENCING OLD AS OLD                               
>  FOR EACH ROW MODE DB2SQL                             
>  UPDATE TEST SET TIMESTAMP = CURRENT_TIMESTAMP WHERE  
>  TESTID = OLD.TESTID;                                 
> INSERT INTO TEST (INFO) VALUES  
> (1),                            
> (2),                            
> (3); 
> Exit ij
> Replace derby jars with version 10.1.3.2.424154 
> Execute the following in ij:
> UPDATE TEST SET INFO = 1 WHERE TESTID = 2; 
> ERROR 54038: Maximum depth of nested triggers was exceeded.
> Rajesh confirmed.
> I tried different combinations and found that the issue exists between versions and is present in older versions dating back to 10.0.
> 10.0.2.2 - (349072) database  -> booted in 10.1.1.0 - (208786) jars
> 10.1.1.0 - (208786) database  -> booted in 10.1.2.4 - (394241) jars
> 10.1.2.4 - (394241) database  -> booted in 10.1.2.5 - (413784) jars
> 10.1.2.5 - (413784) database  -> booted in  10.1.3.1 - (417277) jars (Attached is a derby.log that shows the stack trace using sane jars.)
> This (self) trigger works fine if it was created and used in the same version of jars.
> Below is the trace:
>         at 
> org.apache.derby.iapi.error.StandardException.newException(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.
> pushT
> riggerExecutionContext(Unknown Source)
>         at 
> org.apache.derby.impl.sql.execute.InternalTriggerExecutionContex
> t.<in
> it>(Unknown Source)
>         at 
> org.apache.derby.impl.sql.execute.GenericExecutionFactory.getTri
> ggerE
> xecutionContext(Unknown Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.<init
> >(Unknow
> n Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireBeforeTrig
> gers(
> Unknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.sql.execute.GenericTriggerExecutor.execute
> SPS(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.RowTriggerExecutor.fireTrigger
> (Unkn
> own Source)
>         at 
> org.apache.derby.impl.sql.execute.TriggerEventActivator.notifyEv
> ent(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.fireAfterTrigg
> ers(U
> nknown Source)
>         at 
> org.apache.derby.impl.sql.execute.UpdateResultSet.open(Unknown 
> Source
> )
>         at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unkno
> wn So
> urce)
>         at 
> org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown 
> Source)
>         at 
> org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown 
> Source)
>         at 
> org.apache.derby.impl.tools.ij.ij.executeImmediate(Unknown 
> Source)
>         at 
> org.apache.derby.impl.tools.ij.utilMain.doCatch(Unknown 
> Source)
>         at org.apache.derby.impl.tools.ij.utilMain.go(Unknown 
> Source)
>         at org.apache.derby.impl.tools.ij.Main.go(Unknown 
> Source)
>         at org.apache.derby.impl.tools.ij.Main.mainCore(Unknown 
> Source)
>         at org.apache.derby.impl.tools.ij.Main14.main(Unknown 
> Source)
>         at org.apache.derby.tools.ij.main(Unknown Source)
> SYSINFO:
> ------------------ Java Information ------------------
> Java Version:    1.4.2
> Java Vendor:     IBM Corporation
> Java home:       C:\Cloudscape_10.1\ibm-jre-n142p\jre
> Java classpath:  
> C:\Cloudscape_10.1\lib\derby.jar;C:\Cloudscape_10.1\lib\derbytools.jar;C:\Cloudscape_10.1\lib\db2jcc_license_c.jar;
> OS name:         Windows 2000
> OS architecture: x86
> OS version:      5.0
> Java user home:  C:\Documents and Settings\Administrator
> Java user dir:   C:\Documents and Settings\Administrator
> java.specification.name: Java Platform API Specification
> java.specification.version: 1.4
> --------- Derby Information --------
> JRE - JDBC: J2SE 1.4.2 - JDBC 3.0
> [C:\Cloudscape_10.1\lib\derby.jar] 10.1.3.2 - (424154)
> [C:\Cloudscape_10.1\lib\derbytools.jar] 10.1.3.2 - (424154)
> ------------------------------------------------------
> ----------------- Locale Information -----------------
> ------------------------------------------------------

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira