db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yip Ng (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (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
Date Mon, 07 Aug 2006 00:56:14 GMT
    [ http://issues.apache.org/jira/browse/DERBY-1603?page=comments#action_12426099 ] 
            
Yip Ng commented on DERBY-1603:
-------------------------------

The problem is not the upgrade right?  The update statement above throws SQLSTATE 54038 as
it self triggers to the max depth and thus is reporting the error correctly.  The issue here
is why self trigger works fine with the same version.  It should have thrown an error in this
case.

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

        

Mime
View raw message