-
Bug
-
Resolution: Tracked Elsewhere
-
Medium
-
None
-
7.13.7, 7.19.0, 7.19.1
-
None
-
2
-
Severity 2 - Major
-
Issue Summary
After updating the Troubleshooting and Support plugins to version 1.41.0 or 1.41.1, you will encounter the ORA-00905: missing keyword error when viewing the Troubleshooting and support tools page.
Steps to Reproduce
- Setup Confluence 7.13.7 with Oracle
- Update the Troubleshooting and Support plugins to the latest version
- Access the Troubleshooting and support tools page (<confluence-base-url>/plugins/servlet/troubleshooting/view/
Expected Results
No errors thrown
Actual Results
The below exception is thrown in the atlassian-confluence.log file:
2022-08-19 14:56:24,163 ERROR [HealthCheck:thread-2] [healthcheck.directory.internal.InternalAdminCheck] check An error occurred when performing the Internal Administrator User health check, we're going to try to fallback: -- referer: https://linux-23762.prod.atl-cd.net/confluence/plugins/servlet/troubleshooting/view/ | url: /confluence/rest/troubleshooting/1.0/check/process/ | traceId: fee069cadc9c6ff8 | userName: admin java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLSyntaxErrorException: ORA-00905: missing keyword at com.atlassian.troubleshooting.confluence.healthcheck.ConfluenceDatabaseService.runInConnection(ConfluenceDatabaseService.java:33) at com.atlassian.troubleshooting.confluence.healthcheck.directory.internal.InternalAdminCheck.check(InternalAdminCheck.java:98) at com.atlassian.troubleshooting.healthcheck.impl.PluginSuppliedSupportHealthCheck.check(PluginSuppliedSupportHealthCheck.java:66) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.RuntimeException: java.sql.SQLSyntaxErrorException: ORA-00905: missing keyword at com.atlassian.troubleshooting.confluence.healthcheck.directory.internal.InternalAdminCheck.getQueryResult(InternalAdminCheck.java:166) at com.atlassian.troubleshooting.confluence.healthcheck.directory.internal.InternalAdminCheck.countUsersInAdminGroupQuery(InternalAdminCheck.java:137) at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.executeInternal(DefaultTransactionalExecutor.java:87) at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.lambda$execute$0(DefaultTransactionalExecutor.java:43) at com.atlassian.sal.spring.connection.SpringHostConnectionAccessor.lambda$execute$0(SpringHostConnectionAccessor.java:55) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) at com.atlassian.sal.spring.connection.SpringHostConnectionAccessor.execute(SpringHostConnectionAccessor.java:49) at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.execute(DefaultTransactionalExecutor.java:40) at com.atlassian.troubleshooting.confluence.healthcheck.ConfluenceDatabaseService.runInConnection(ConfluenceDatabaseService.java:31) ... 6 more Caused by: java.sql.SQLSyntaxErrorException: ORA-00905: missing keyword at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494) at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446) at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1054) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:623) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:226) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:59) at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:747) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:904) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3780) at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1343) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3822) at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1165) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:1471) at com.atlassian.troubleshooting.confluence.healthcheck.directory.internal.InternalAdminCheck.getQueryResult(InternalAdminCheck.java:162) ... 14 more Caused by: Error : 905, Position : 84, Sql = SELECT COUNT(DISTINCT cu.user_name) FROM cwd_membership cm LEFT OUTER JOIN cwd_user AS cu ON cm.child_user_id = cu.id LEFT OUTER JOIN cwd_group AS cg ON cm.parent_id = cg.id LEFT OUTER JOIN cwd_directory AS cd ON cd.id = cg.directory_id WHERE cg.lower_group_name IN (SELECT sp.PERMGROUPNAME FROM SPACEPERMISSIONS sp WHERE sp.PERMTYPE IN (:1 ,:2 )) AND cu.active = :3 AND cg.active = :4 AND cd.directory_type = :5 , OriginalSql = SELECT COUNT(DISTINCT cu.user_name) FROM cwd_membership cm LEFT OUTER JOIN cwd_user AS cu ON cm.child_user_id = cu.id LEFT OUTER JOIN cwd_group AS cg ON cm.parent_id = cg.id LEFT OUTER JOIN cwd_directory AS cd ON cd.id = cg.directory_id WHERE cg.lower_group_name IN (SELECT sp.PERMGROUPNAME FROM SPACEPERMISSIONS sp WHERE sp.PERMTYPE IN (?,?)) AND cu.active = ? AND cg.active = ? AND cd.directory_type = ?, Error Msg = ORA-00905: missing keyword at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498) ... 30 more
Workaround
Downgrade the plugin to v1.39.0 (you may need to uninstall plugin v1.41.0 or v1.41.1 and install v1.39.0)