-
Bug
-
Resolution: Tracked Elsewhere
-
Low
-
None
-
7.13.0
-
None
-
1
-
Severity 3 - Minor
-
Issue Summary
Confluence Health Check is not loading and it just gives a blank screen with the message “The contents of this tab are loading...” also when Confluence has a Data Source connection with below tomcat settings in datasource:
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" jdbcInterceptors="nl.nlighten.prometheus.tomcat.TomcatJdbcInterceptor(logFailed=true,logSlow=true,threshold=1000,buckets=.01|.05|.1|1|10,slowQueryBuckets=1|10|30)"
On further investigation found below error in logs:
2021-11-01 18:39:26,445 INFO [Catalina-utility-2] [com.atlassian.confluence.lifecycle] init Confluence is ready to serve 2021-11-01 18:40:18,477 ERROR [http-nio-27130-exec-4] [ContainerBase.[Standalone].[localhost].[/c7130]] log Unhandled exception occurred whilst decorating page -- referer: http://localhost:27130/c7130/plugins/servlet/troubleshooting/view/ | url: /c7130/plugins/servlet/troubleshooting/view/atst-detect-issues/view | traceId: 10a70e6989106ce4 | userName: admin java.lang.NullPointerException: null value in entry: driver=null at com.google.common.collect.CollectPreconditions.checkEntryNotNull(CollectPreconditions.java:32) at com.google.common.collect.ImmutableMap.entryOf(ImmutableMap.java:176) at com.google.common.collect.ImmutableMap$Builder.put(ImmutableMap.java:285) at com.atlassian.confluence.plugins.synchrony.bootstrap.DefaultSynchronyProcessManager.getConfiguration(DefaultSynchronyProcessManager.java:162)
Everything works properly till Atlassian Troubleshooting and Support Tools 1.32.7 version but when the ATST plugin is upgraded to any new version, the Health check started failing with a blank screen. Also, when removing the below settings from the data source connection everything works with the latest version of the Atlassian Troubleshooting and Support Tools plugin.
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" jdbcInterceptors="nl.nlighten.prometheus.tomcat.TomcatJdbcInterceptor(logFailed=true,logSlow=true,threshold=1000,buckets=.01|.05|.1|1|10,slowQueryBuckets=1|10|30)"
Steps to Reproduce
- Configure Confluence Data source and use the below settings in the Datasource connections:
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" jdbcInterceptors="nl.nlighten.prometheus.tomcat.TomcatJdbcInterceptor(logFailed=true,logSlow=true,threshold=1000,buckets=.01|.05|.1|1|10,slowQueryBuckets=1|10|30)"
- So Datasource connection should be like below:
<Resource name="jdbc/confluence" auth="Container" type="javax.sql.DataSource" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" jdbcInterceptors="nl.nlighten.prometheus.tomcat.TomcatJdbcInterceptor(logFailed=true,logSlow=true,threshold=1000,buckets=.01|.05|.1|1|10,slowQueryBuckets=1|10|30)" username="Sanitized by Support Utility" password="Sanitized by Support Utility" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8" maxTotal="60" maxIdle="20" defaultTransactionIsolation="READ_COMMITTED" validationQuery="Select 1" /
- When you will open the health check it will not load and it will give you the below error in the logs:
2021-11-01 18:39:26,445 INFO [Catalina-utility-2] [com.atlassian.confluence.lifecycle] init Confluence is ready to serve 2021-11-01 18:40:18,477 ERROR [http-nio-27130-exec-4] [ContainerBase.[Standalone].[localhost].[/c7130]] log Unhandled exception occurred whilst decorating page -- referer: http://localhost:27130/c7130/plugins/servlet/troubleshooting/view/ | url: /c7130/plugins/servlet/troubleshooting/view/atst-detect-issues/view | traceId: 10a70e6989106ce4 | userName: admin java.lang.NullPointerException: null value in entry: driver=null at com.google.common.collect.CollectPreconditions.checkEntryNotNull(CollectPreconditions.java:32) at com.google.common.collect.ImmutableMap.entryOf(ImmutableMap.java:176) at com.google.common.collect.ImmutableMap$Builder.put(ImmutableMap.java:285) at com.atlassian.confluence.plugins.synchrony.bootstrap.DefaultSynchronyProcessManager.getConfiguration(DefaultSynchronyProcessManager.java:162)
Expected Results
The health check should load with every tomcat settings with the latest ATST plugin.
Actual Results
Health check loads a blank page with the latest version of ATST plugin .
The below exception is thrown in the xxxxxxx.log file:
2021-11-01 18:39:26,445 INFO [Catalina-utility-2] [com.atlassian.confluence.lifecycle] init Confluence is ready to serve 2021-11-01 18:40:18,477 ERROR [http-nio-27130-exec-4] [ContainerBase.[Standalone].[localhost].[/c7130]] log Unhandled exception occurred whilst decorating page -- referer: http://localhost:27130/c7130/plugins/servlet/troubleshooting/view/ | url: /c7130/plugins/servlet/troubleshooting/view/atst-detect-issues/view | traceId: 10a70e6989106ce4 | userName: admin java.lang.NullPointerException: null value in entry: driver=null at com.google.common.collect.CollectPreconditions.checkEntryNotNull(CollectPreconditions.java:32) at com.google.common.collect.ImmutableMap.entryOf(ImmutableMap.java:176) at com.google.common.collect.ImmutableMap$Builder.put(ImmutableMap.java:285) at com.atlassian.confluence.plugins.synchrony.bootstrap.DefaultSynchronyProcessManager.getConfiguration(DefaultSynchronyProcessManager.java:162)
Workaround
There is 2 workaround,
- Migrate the Datasource to Hibernate connections.
- Or remove the below Tomcat settings from the Datasource:
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" jdbcInterceptors="nl.nlighten.prometheus.tomcat.TomcatJdbcInterceptor(logFailed=true,logSlow=true,threshold=1000,buckets=.01|.05|.1|1|10,slowQueryBuckets=1|10|30)"