View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003298 | SymmetricDS | Bug | public | 2017-10-31 20:06 | 2017-11-06 13:13 |
Reporter | mmichalek | Assigned To | mmichalek | ||
Priority | normal | ||||
Status | closed | Resolution | fixed | ||
Product Version | 3.8.0 | ||||
Target Version | 3.8.31 | Fixed in Version | 3.8.31 | ||
Summary | 0003298: On Sybase ASE, SymmetricDS sometimes fails to detect triggers in different catalog | ||||
Description | Observed on Sybase ASE 16: If a trigger exists in different catalog, Sybase ASE throws a strange exception when attempting to switch to the catalog and then query dbo.sysobjects. A user found that if the catalog is used directly in the query, then it works. So this fails: select count(*) from dbo.sysobjects where type = 'TR' AND name ='SYM_ON_D_FOR_CRD1_SST_CRDBR' But this works (note the catalogname): select count(*) from catalogname.dbo.sysobjects where type = 'TR' AND name ='SYM_ON_D_FOR_CRD1_SST_CRDBR' 2017-10-31 15:19:53,124 ERROR [QA_SYBASE] [AseSymmetricDialect] [qa_sybase-sync-triggers-1] FAILED: select count(*) from dbo.sysobjects where type = 'TR' AND name ='SYM_ON_D_FOR_CRD1_SST_CRDBR' StackTraceKey.init [SQLException:3944636915] java.sql.SQLException: Cannot run query--referenced object (name NAME NOT RECOVERABLE) dropped during query optimization. at com.sybase.jdbc4.jdbc.SybConnection.getAllExceptions(SybConnection.java:2780) at com.sybase.jdbc4.jdbc.SybStatement.handleSQLE(SybStatement.java:2665) at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:295) at com.sybase.jdbc4.jdbc.SybStatement.nextResult(SybStatement.java:272) at com.sybase.jdbc4.jdbc.SybStatement.queryLoop(SybStatement.java:2409) at com.sybase.jdbc4.jdbc.SybStatement.executeQuery(SybStatement.java:2395) at com.sybase.jdbc4.jdbc.SybPreparedStatement.executeQuery(SybPreparedStatement.java:258) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96) at org.jumpmind.symmetric.db.ase.AseSymmetricDialect$2.execute(AseSymmetricDialect.java:146) at org.jumpmind.symmetric.db.ase.AseSymmetricDialect$2.execute(AseSymmetricDialect.java:1) at org.jumpmind.db.sql.JdbcSqlTemplate.execute(JdbcSqlTemplate.java:491) at org.jumpmind.symmetric.db.ase.AseSymmetricDialect.doesTriggerExistOnPlatform(AseSymmetricDialect.java:131) at org.jumpmind.symmetric.db.AbstractSymmetricDialect.doesTriggerExist(AbstractSymmetricDialect.java:196) at org.jumpmind.symmetric.service.impl.TriggerRouterService.rebuildTriggerIfNecessary(TriggerRouterService.java:1762) at org.jumpmind.symmetric.service.impl.TriggerRouterService.updateOrCreateDatabaseTriggers(TriggerRouterService.java:1684) at org.jumpmind.symmetric.service.impl.TriggerRouterService.updateOrCreateDatabaseTrigger(TriggerRouterService.java:1555) at org.jumpmind.symmetric.service.impl.TriggerRouterService$2.run(TriggerRouterService.java:1541) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) | ||||
Tags | No tags attached. | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2017-10-31 20:06 | mmichalek | New Issue | |
2017-10-31 20:06 | mmichalek | Status | new => assigned |
2017-10-31 20:06 | mmichalek | Assigned To | => mmichalek |
2017-11-01 19:46 | mmichalek | Status | assigned => resolved |
2017-11-01 19:46 | mmichalek | Resolution | open => fixed |
2017-11-01 19:46 | mmichalek | Fixed in Version | => 3.8.31 |
2017-11-01 20:00 | mmichalek | Changeset attached | => SymmetricDS 3.8 d1340ceb |
2017-11-06 13:13 | chenson | Status | resolved => closed |