Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-75099

Confluence Health Check gives blank screen instead of loading

XMLWordPrintable

      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

      1. 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)"
      2.  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&amp;characterEncoding=utf8"
                 			maxTotal="60"
                 			maxIdle="20"
                 			defaultTransactionIsolation="READ_COMMITTED"
                 			validationQuery="Select 1" /
        
      3. 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,

      1. Migrate the Datasource to Hibernate connections.
      2. 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)"

              rsaunders@atlassian.com Rob Saunders
              hgupta@atlassian.com Hemant Gupta
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: