• 4
    • 33
    • We collect Confluence feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

      NOTE: This suggestion is for Confluence Server. Using Confluence Cloud? See the corresponding suggestion.

      In Tomcat 6.0.32, I get the following errors when shutting down Confluence, even after CONF-21385 is resolved:

      Jul 12, 2011 10:37:59 AM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
      SEVERE: The web application [/confluence] registered the JDBC driver [org.hsqldb.jdbc.JDBCDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
      Jul 12, 2011 10:37:59 AM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
      SEVERE: The web application [/confluence] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
      Jul 12, 2011 10:37:59 AM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
      SEVERE: The web application [/confluence] registered the JDBC driver [org.postgresql.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
      2011-07-12 10:37:59,842 INFO [main] [com.atlassian.confluence.lifecycle] contextDestroyed Stopping Confluence
      Jul 12, 2011 10:37:59 AM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
      SEVERE: The web application [/confluence] appears to have started a thread named [com.google.common.base.internal.Finalizer] but has failed to stop it. This is very likely to create a memory leak.
      Jul 12, 2011 10:37:59 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
      SEVERE: The web application [/confluence] created a ThreadLocal with key of type [com.atlassian.core.logging.ThreadLocalErrorCollection$2] (value [com.atlassian.core.logging.ThreadLocalErrorCollection$2@2dc4df0b]) and a value of type [java.lang.Boolean] (value [false]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
      Jul 12, 2011 10:37:59 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
      SEVERE: The web application [/confluence] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@580f62a6]) and a value of type [org.dom4j.DocumentFactory] (value [org.dom4j.DocumentFactory@5a15ad74]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
      Jul 12, 2011 10:37:59 AM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
      SEVERE: The web application [/confluence] created a ThreadLocal with key of type [com.atlassian.confluence.concurrent.ThreadLocalMap] (value [com.atlassian.confluence.concurrent.ThreadLocalMap@452ec8e0]) and a value of type [java.util.HashMap] (value [{}]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
      log4j:ERROR LogMananger.repositorySelector was null likely due to error in class reloading, using NOPLoggerRepository.
      Jul 12, 2011 10:38:00 AM org.apache.coyote.http11.Http11Protocol destroy
      INFO: Stopping Coyote HTTP/1.1 on http-8080
      Disconnected from server
      

      Those "SEVERE" and "ERROR" lines ideally wouldn't be there. It's Tomcat pointing out how some of our code and some of our library code doesn't clean up resources properly.

      There's also a race condition in C3P0 that leads to error messages like this at shutdown:

      Exception in thread "Timer-0" java.lang.NullPointerException
      at com.mchange.v2.log.log4j.Log4jMLog$Log4jMLogger.isLoggable(Log4jMLog.java:257)
      at com.mchange.v2.resourcepool.BasicResourcePool$CheckIdleResourcesTask.run(BasicResourcePool.java:1961)
      at java.util.TimerThread.mainLoop(Unknown Source)
      at java.util.TimerThread.run(Unknown Source)
      

        1. catalina_JavaFullThreadDump.out
          124 kB
          Normand Brousseau

            [CONFSERVER-22879] Reduce errors logged when shutting down Confluence

            When shutting down our v5.5.2 instance, I also get a 1700-line Java Full Thread Dump in catalina.out. I've extracted only the shutdown output, which I'm attaching.

            Talk about reducing logged errors!!!

            Normand Brousseau added a comment - When shutting down our v5.5.2 instance, I also get a 1700-line Java Full Thread Dump in catalina.out . I've extracted only the shutdown output, which I'm attaching. Talk about reducing logged errors!!!

            I also get similar error messages in my log for JIRA 6.2.3

            Maxime Boyer added a comment - I also get similar error messages in my log for JIRA 6.2.3

            CharlesA added a comment -

            Also,

            2013-10-01 14:55:55,448 ERROR [FelixStartLevel] [atlassian.event.internal.AsynchronousAbleEventDispatcher] run There was an exception thrown trying to dispatch event 'com.atlassian.plugin.event.events.PluginModuleUnavailableEvent@4e095e8b' from the invoker 'SingleParameterMethodListenerInvoker

            {method=public void com.atlassian.plugin.manager.DefaultPluginManager.onPluginModuleUnavailable(com.atlassian.plugin.event.events.PluginModuleUnavailableEvent), listener=com.atlassian.confluence.plugin.ConfluencePluginManager@1ee56076}

            '.
            java.lang.RuntimeException: Cannot retrieve plugin module before it is enabled: PluginModuleHolder[(unknown; not enabled)]
            at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:54)
            at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$2.run(AsynchronousAbleEventDispatcher.java:66)
            at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1.execute(AsynchronousAbleEventDispatcher.java:32)
            at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:60)
            at com.atlassian.event.internal.EventPublisherImpl.invokeListeners(EventPublisherImpl.java:160)
            at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:79)
            at com.atlassian.plugin.event.impl.DefaultPluginEventManager.broadcast(DefaultPluginEventManager.java:84)
            at com.atlassian.plugin.osgi.factory.UnrecognizedModuleDescriptorServiceTrackerCustomizer.removedService(UnrecognizedModuleDescriptorServiceTrackerCustomizer.java:141)
            at org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:922)
            at org.osgi.util.tracker.AbstractTracked.untrack(AbstractTracked.java:351)
            at org.osgi.util.tracker.ServiceTracker.close(ServiceTracker.java:403)
            at com.atlassian.plugin.osgi.factory.OsgiPluginInstalledHelper.onDisable(OsgiPluginInstalledHelper.java:104)
            at com.atlassian.plugin.osgi.factory.OsgiPlugin$1.bundleChanged(OsgiPlugin.java:110)
            at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:800)
            at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:728)
            at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:610)
            at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3715)
            at org.apache.felix.framework.Felix.stopBundle(Felix.java:2180)
            at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1172)
            at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264)
            at java.lang.Thread.run(Thread.java:722)
            Caused by: java.lang.IllegalStateException: Cannot retrieve plugin module before it is enabled: PluginModuleHolder[(unknown; not enabled)]
            at com.atlassian.confluence.plugin.module.PluginModuleHolder.getModule(PluginModuleHolder.java:102)
            at com.atlassian.confluence.plugin.descriptor.ListenerModuleDescriptor.getModule(ListenerModuleDescriptor.java:26)
            at com.atlassian.confluence.plugin.descriptor.ListenerModuleDescriptor.disabled(ListenerModuleDescriptor.java:43)
            at com.atlassian.plugin.manager.DefaultPluginManager.publishModuleDisabledEvents(DefaultPluginManager.java:1557)
            at com.atlassian.plugin.manager.DefaultPluginManager.notifyModuleDisabled(DefaultPluginManager.java:1544)
            at com.atlassian.confluence.plugin.ConfluencePluginManager.notifyModuleDisabled(ConfluencePluginManager.java:121)
            at com.atlassian.plugin.manager.DefaultPluginManager.onPluginModuleUnavailable(DefaultPluginManager.java:347)
            at sun.reflect.GeneratedMethodAccessor1209.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:601)
            at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36)
            ... 20 more

            CharlesA added a comment - Also, 2013-10-01 14:55:55,448 ERROR [FelixStartLevel] [atlassian.event.internal.AsynchronousAbleEventDispatcher] run There was an exception thrown trying to dispatch event 'com.atlassian.plugin.event.events.PluginModuleUnavailableEvent@4e095e8b' from the invoker 'SingleParameterMethodListenerInvoker {method=public void com.atlassian.plugin.manager.DefaultPluginManager.onPluginModuleUnavailable(com.atlassian.plugin.event.events.PluginModuleUnavailableEvent), listener=com.atlassian.confluence.plugin.ConfluencePluginManager@1ee56076} '. java.lang.RuntimeException: Cannot retrieve plugin module before it is enabled: PluginModuleHolder [(unknown; not enabled)] at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:54) at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$2.run(AsynchronousAbleEventDispatcher.java:66) at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1.execute(AsynchronousAbleEventDispatcher.java:32) at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:60) at com.atlassian.event.internal.EventPublisherImpl.invokeListeners(EventPublisherImpl.java:160) at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:79) at com.atlassian.plugin.event.impl.DefaultPluginEventManager.broadcast(DefaultPluginEventManager.java:84) at com.atlassian.plugin.osgi.factory.UnrecognizedModuleDescriptorServiceTrackerCustomizer.removedService(UnrecognizedModuleDescriptorServiceTrackerCustomizer.java:141) at org.osgi.util.tracker.ServiceTracker$Tracked.customizerRemoved(ServiceTracker.java:922) at org.osgi.util.tracker.AbstractTracked.untrack(AbstractTracked.java:351) at org.osgi.util.tracker.ServiceTracker.close(ServiceTracker.java:403) at com.atlassian.plugin.osgi.factory.OsgiPluginInstalledHelper.onDisable(OsgiPluginInstalledHelper.java:104) at com.atlassian.plugin.osgi.factory.OsgiPlugin$1.bundleChanged(OsgiPlugin.java:110) at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:800) at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:728) at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:610) at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:3715) at org.apache.felix.framework.Felix.stopBundle(Felix.java:2180) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1172) at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.IllegalStateException: Cannot retrieve plugin module before it is enabled: PluginModuleHolder [(unknown; not enabled)] at com.atlassian.confluence.plugin.module.PluginModuleHolder.getModule(PluginModuleHolder.java:102) at com.atlassian.confluence.plugin.descriptor.ListenerModuleDescriptor.getModule(ListenerModuleDescriptor.java:26) at com.atlassian.confluence.plugin.descriptor.ListenerModuleDescriptor.disabled(ListenerModuleDescriptor.java:43) at com.atlassian.plugin.manager.DefaultPluginManager.publishModuleDisabledEvents(DefaultPluginManager.java:1557) at com.atlassian.plugin.manager.DefaultPluginManager.notifyModuleDisabled(DefaultPluginManager.java:1544) at com.atlassian.confluence.plugin.ConfluencePluginManager.notifyModuleDisabled(ConfluencePluginManager.java:121) at com.atlassian.plugin.manager.DefaultPluginManager.onPluginModuleUnavailable(DefaultPluginManager.java:347) at sun.reflect.GeneratedMethodAccessor1209.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:36) ... 20 more

            CharlesA added a comment -

            Also needs fixing: shutting down the scheduler before we shutdown the plugin system logs a bunch of errors.

            CharlesA added a comment - Also needs fixing: shutting down the scheduler before we shutdown the plugin system logs a bunch of errors.

              Unassigned Unassigned
              matt@atlassian.com Matt Ryall
              Votes:
              31 Vote for this issue
              Watchers:
              34 Start watching this issue

                Created:
                Updated: