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

500.jsp requires a database connection, to report errors caused by database connection pool timeout

XMLWordPrintable

      Whenever the 500 error page is triggered, the jsp tries to retrieve a database connection to report some details about the database settings. If the 500 page was triggered by database connection pool exhaustion (which is very common) this will fail.

      As the database details for the ConfluenceDS datasource cannot change while confluence is running this information should be stored on startup rather than being retrieved on ever error

      "TP-Processor55" daemon prio=10 tid=0x00002aab2c88d400 nid=0x7f95 waiting for monitor entry [0x0000000047d04000..0x0000000047d05c90]
         java.lang.Thread.State: BLOCKED (on object monitor)
      	at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:916)
      	- waiting to lock <0x00002aaabf4149f0> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool)
      	at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
      	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
      	at net.sf.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:59)
      	at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:292)
      	at net.sf.hibernate.impl.SessionImpl.connect(SessionImpl.java:3373)
      	at net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3333)
      	at sun.reflect.GeneratedMethodAccessor1346.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      	at java.lang.reflect.Method.invoke(Method.java:597)
      	at org.springframework.orm.hibernate.HibernateTemplate$CloseSuppressingInvocationHandler.invoke(HibernateTemplate.java:1123)
      	at $Proxy79.connection(Unknown Source)
      	at com.atlassian.confluence.status.service.DefaultSystemInformationService$1.doInHibernate(DefaultSystemInformationService.java:152)
      	at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:370)
      	at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:337)
      	at com.atlassian.confluence.status.service.DefaultSystemInformationService.retrieveConnectionBasedInformation(DefaultSystemInformationService.java:148)
      	at com.atlassian.confluence.status.service.DefaultSystemInformationService.getDatabaseInfo(DefaultSystemInformationService.java:67)
      	at com.atlassian.confluence.admin.actions.SystemErrorInformationLogger.writeToLog(SystemErrorInformationLogger.java:95)
      	at org.apache.jsp._500page_jsp._jspService(_500page_jsp.java:182)
      

            cmiller CharlesA
            dcheney David Cheney (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: