Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-2852

Memory leak when undeploying webapp with ActiveMQ client

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 5.3.2
    • 5.5.0
    • Transport
    • None

    Description

      I have a web app with an ActiveMQ client. When undeploying the app, Tomcat logs the following messages.

      28.07.2010 17:44:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
      SCHWERWIEGEND: The web application [] appears to have started a thread named [InactivityMonitor Async Task: java.util.concurrent.ThreadPoolExecutor$Worker@c821ef] but has failed to stop it. This is very likely to create a memory leak. 
      28.07.2010 17:44:28 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
      SCHWERWIEGEND: The web application [] appears to have started a thread named [TcpSocketClose: java.util.concurrent.ThreadPoolExecutor$Worker@19ac2e3] but has failed to stop it. This is very likely to create a memory leak. 
      

      Searching for "InactivityMonitor Async Task" and "TcpSocketClose", I found org.apache.activemq.transport.tcp.TcpTransport and org.apache.activemq.transport.InactivityMonitor which both start a ThreadPoolExecutor in their static intializers but never stop them. The ThreadPoolExecutors hold references to ActiveMQ classes which hold a reference to the webapp classloader. These references prevent the webapp classes from being unloaded when the webapp is undeployed. Due to this the servlet container runs out of memory after a few redeployments.

      The ActiveMQ client should dispose all resources when being closed, including the ThreadPoolExecutors. Or to provide some methods to explicitly stop these Threads (like org.apache.activemq.thread.Scheduler.shutdown() does).

      Attachments

        Issue Links

          Activity

            People

              gtully Gary Tully
              daniel.spilker@hamburg.de Daniel Spilker
              Votes:
              11 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: