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

Details

    Description

      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
      

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: