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

Post-Upgrade Recovery File Generation Results in OOM If Size of BodyContent Is Really Large

XMLWordPrintable

      We have seen an issue where an instance would run into OOM, despite having a really large Heap (10GB), because the size of their BODYCONTENT is really large. We should not load the entire BODYCONTENT into memory to generate this recovery file.

      See:

      2015-04-26 00:23:03,049 INFO [localhost-startStop-1] [confluence.upgrade.recovery.ConfluenceProgressMonitor] end TABLE_DATA: [bandana]
      2015-04-26 00:23:03,049 INFO [localhost-startStop-1] [confluence.upgrade.recovery.ConfluenceProgressMonitor] begin TABLE_DATA: [bodycontent]
      2015-04-26 00:24:46,119 WARN [localhost-startStop-1] [v2.c3p0.impl.NewPooledConnection] handleThrowable [c3p0] A PooledConnection that has already signalled a Connection error is still in use!
      2015-04-26 00:24:46,119 WARN [localhost-startStop-1] [v2.c3p0.impl.NewPooledConnection] handleThrowable [c3p0] Another error has occurred [ com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed. ] which will not be reported to listeners!
      com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
      	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
      	at java.lang.reflect.Constructor.newInstance(Unknown Source)
      	at com.mysql.jdbc.Util.handleNewInstance(Util.java:389)
      	at com.mysql.jdbc.Util.getInstance(Util.java:372)
      	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:958)
      	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937)
      	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
      	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:872)
      	at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1236)
      	at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1231)
      	at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:4811)
      	at com.mchange.v2.c3p0.impl.NewProxyConnection.setAutoCommit(NewProxyConnection.java:881)
      	at com.atlassian.confluence.upgrade.recovery.DefaultRecoveryFileGenerator.generate(DefaultRecoveryFileGenerator.java:91)
      	at com.atlassian.confluence.upgrade.impl.DefaultUpgradeManager.entireUpgradeFinished(DefaultUpgradeManager.java:307)
      	at com.atlassian.confluence.upgrade.PluginFrameworkDependentUpgrader.startup(PluginFrameworkDependentUpgrader.java:29)
      	at com.atlassian.config.lifecycle.DefaultLifecycleManager.startUp(DefaultLifecycleManager.java:40)
      	at com.atlassian.config.lifecycle.LifecycleServletContextListener.contextInitialized(LifecycleServletContextListener.java:17)
      	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
      	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
      	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
      	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
      	at java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.lang.Thread.run(Unknown Source)
      Caused by: java.lang.OutOfMemoryError: Java heap space
      

      Failed with:

      -Xms10240m -Xmx10240m 
      

      Workaround

      Disable the upgrade recovery file generation by adding this to your startup parameter:

      -Dconfluence.upgrade.recovery.file.enabled=false
      

            psemeniuk Petro Semeniuk (Inactive)
            fsim Foo Sim (Inactive)
            Votes:
            9 Vote for this issue
            Watchers:
            18 Start watching this issue

              Created:
              Updated:
              Resolved: