Has anyone had trouble with using Postgresql version 10 (I’m on ignition version 7.8.4)? I just upgraded one of my production databases from 9.6. I’m only using that db for some transaction group stuff, not my main historian data. I didn’t notice any trouble with it for a couple weeks. Today, I was trying to modify some of the transaction groups pointed at that database, and one of the two groups is failing to run. I restarted the ignition service, and now I have two more transaction groups, also pointing at that database, that are failing to run.
The errors in the transaction group editor are non-specific. Just saying ‘Unable to start group’ and ‘Group state changed to fatally_errored’. The wrapper.log has a little more info, but I can’t make sense of it.
INFO | jvm 1 | 2017/12/09 14:20:47 | ERROR [RT values_Generators_RT Generator 1] [14:20:47,195]: Unable to start group.
INFO | jvm 1 | 2017/12/09 14:20:47 | java.lang.NullPointerException
INFO | jvm 1 | 2017/12/09 14:20:47 | at org.postgresql.jdbc2.AbstractJdbc2DatabaseMetaData.getColumns(AbstractJdbc2DatabaseMetaData.java:2502)
INFO | jvm 1 | 2017/12/09 14:20:47 | at org.postgresql.jdbc4.AbstractJdbc4DatabaseMetaData.getColumns(AbstractJdbc4DatabaseMetaData.java:99)
INFO | jvm 1 | 2017/12/09 14:20:47 | at com.inductiveautomation.ignition.gateway.db.schema.DBTableSchema.refreshTableState(DBTableSchema.java:245)
INFO | jvm 1 | 2017/12/09 14:20:47 | at com.inductiveautomation.factorysql.groups.AbstractTableItemGroup.checkTableStructure(AbstractTableItemGroup.java:181)
INFO | jvm 1 | 2017/12/09 14:20:47 | at com.inductiveautomation.factorysql.groups.AbstractTableItemGroup.prestartCheck(AbstractTableItemGroup.java:129)
INFO | jvm 1 | 2017/12/09 14:20:47 | at com.inductiveautomation.factorysql.groups.AbstractGroup.startExecution(AbstractGroup.java:262)
INFO | jvm 1 | 2017/12/09 14:20:47 | at com.inductiveautomation.factorysql.FSQLProjectRunner.loadGroupResource(FSQLProjectRunner.java:354)
INFO | jvm 1 | 2017/12/09 14:20:47 | at com.inductiveautomation.factorysql.FSQLProjectRunner.loadProject(FSQLProjectRunner.java:274)
INFO | jvm 1 | 2017/12/09 14:20:47 | at com.inductiveautomation.factorysql.FSQLProjectRunner$1.run(FSQLProjectRunner.java:194)
INFO | jvm 1 | 2017/12/09 14:20:47 | at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:537)
INFO | jvm 1 | 2017/12/09 14:20:47 | at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
INFO | jvm 1 | 2017/12/09 14:20:47 | at java.util.concurrent.FutureTask.run(FutureTask.java:266)
INFO | jvm 1 | 2017/12/09 14:20:47 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
INFO | jvm 1 | 2017/12/09 14:20:47 | at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
INFO | jvm 1 | 2017/12/09 14:20:47 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
INFO | jvm 1 | 2017/12/09 14:20:47 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
INFO | jvm 1 | 2017/12/09 14:20:47 | at java.lang.Thread.run(Thread.java:748)
The only error the database is reporting happened at when I restarted the ignition service. There were two identical looking sets of entries.
2017-12-09 13:02:38 CST ERROR: column i.indproc does not exist at character 610
2017-12-09 13:02:38 CST HINT: Perhaps you meant to reference the column "i.indpred".
2017-12-09 13:02:38 CST STATEMENT: SELECT NULL AS TABLE_CAT, NULL AS TABLE_SCHEM, ct.relname AS TABLE_NAME, NOT i.indisunique AS NON_UNIQUE, NULL AS INDEX_QUALIFIER, ci.relname AS INDEX_NAME, CASE i.indisclustered WHEN true THEN 1 ELSE CASE am.amname WHEN 'hash' THEN 2 ELSE 3 END END AS TYPE, a.attnum AS ORDINAL_POSITION, CASE i.indproc WHEN 0 THEN a.attname ELSE ip.proname || '(' || ai.attname || ')' END AS COLUMN_NAME, NULL AS ASC_OR_DESC, ci.reltuples AS CARDINALITY, ci.relpages AS PAGES, NULL AS FILTER_CONDITION FROM pg_class ct, pg_class ci, pg_attribute a, pg_am am, pg_attribute ai, pg_index i LEFT JOIN pg_proc ip ON (i.indproc = ip.oid) WHERE ct.oid=i.indrelid AND ci.oid=i.indexrelid AND a.attrelid=ci.oid AND ci.relam=am.oid AND ai.attnum = i.indkey[0] AND ai.attrelid = ct.oid AND ct.relname = 'rt_vacuumfurnaces' ORDER BY NON_UNIQUE, TYPE, INDEX_NAME, ORDINAL_POSITION
2017-12-09 13:05:20 CST ERROR: column i.indproc does not exist at character 610
2017-12-09 13:05:20 CST HINT: Perhaps you meant to reference the column "i.indpred".
2017-12-09 13:05:20 CST STATEMENT: SELECT NULL AS TABLE_CAT, NULL AS TABLE_SCHEM, ct.relname AS TABLE_NAME, NOT i.indisunique AS NON_UNIQUE, NULL AS INDEX_QUALIFIER, ci.relname AS INDEX_NAME, CASE i.indisclustered WHEN true THEN 1 ELSE CASE am.amname WHEN 'hash' THEN 2 ELSE 3 END END AS TYPE, a.attnum AS ORDINAL_POSITION, CASE i.indproc WHEN 0 THEN a.attname ELSE ip.proname || '(' || ai.attname || ')' END AS COLUMN_NAME, NULL AS ASC_OR_DESC, ci.reltuples AS CARDINALITY, ci.relpages AS PAGES, NULL AS FILTER_CONDITION FROM pg_class ct, pg_class ci, pg_attribute a, pg_am am, pg_attribute ai, pg_index i LEFT JOIN pg_proc ip ON (i.indproc = ip.oid) WHERE ct.oid=i.indrelid AND ci.oid=i.indexrelid AND a.attrelid=ci.oid AND ci.relam=am.oid AND ai.attnum = i.indkey[0] AND ai.attrelid = ct.oid AND ct.relname = 'rt_vacuumfurnaces' ORDER BY NON_UNIQUE, TYPE, INDEX_NAME, ORDINAL_POSITION
As far as I can tell, 9.6 didn’t have that column in pg_index either. I know that Postgresql 10 changed something with how the version was being reported. Does the driver that Ignition uses need to be updated? How would I go about doing that? Is there versions to avoid, or tested, known good versions to use? Just use the latest one? Can I install a new driver and keep the old one for the historian database?