Camel
  1. Camel
  2. CAMEL-5086

Archetype: camel-archetype-web retains loaded classes after redeployment, causing permgen space to fill up.

    Details

    • Estimated Complexity:
      Unknown

      Description

      Steps to reproduce:
      1. Create a new camel web project (based on instructions here: http://camel.apache.org/camel-maven-archetypes.html ):

      mvn archetype:generate -DarchetypeGroupId=org.apache.camel.archetypes -DarchetypeArtifactId=camel-archetype-web -DarchetypeVersion=2.9.1 -DarchetypeRepository=https://repository.apache.org/content/groups/snapshots-group

      2. Build the new project:
      mvn clean install

      3. Copy .war file in target/ to tomcat's webapps directory.
      4. Reload webapp (easiest way is to touch the .war file)
      5. If you are using a profiler, you will see that the permgen space increases on every reload (the previous webapp's classes don't get unloaded)
      6. Eventually the webapp container will crash with a permgen out of memory error.

      Workaround: restarting the webapp container will reset the permgen space.
      Removing the Spring nature of the project makes this go away, so it could be a problem with Spring itself.

      This also happens when using Jetty7, so I don't think it is a problem with the container.

      1. tomcat2.png
        21 kB
        Claus Ibsen
      2. tomcat.png
        24 kB
        Claus Ibsen

        Activity

        Hide
        Claus Ibsen added a comment -

        I suggest to attach jvisualvm to the tomcat container and try to see if you can spot any leaks?

        Show
        Claus Ibsen added a comment - I suggest to attach jvisualvm to the tomcat container and try to see if you can spot any leaks?
        Hide
        Claus Ibsen added a comment -

        We have fixed a number of leaks on trunk. I suggest to try the upcoming 2.10 release. Or the 2.9.2 release.

        I just tried with 2.10 and could not detect any leaks. I touched the web app 5 times

        davsclaus:/opt/apache-tomcat-7.0.26/webapps$ touch bar-1.0-SNAPSHOT.war 
        davsclaus:/opt/apache-tomcat-7.0.26/webapps$ touch bar-1.0-SNAPSHOT.war 
        davsclaus:/opt/apache-tomcat-7.0.26/webapps$ touch bar-1.0-SNAPSHOT.war 
        davsclaus:/opt/apache-tomcat-7.0.26/webapps$ touch bar-1.0-SNAPSHOT.war 
        davsclaus:/opt/apache-tomcat-7.0.26/webapps$ touch bar-1.0-SNAPSHOT.war 
        

        And memory usage was low. When performing a GC I get down to 7-8mb.

        Show
        Claus Ibsen added a comment - We have fixed a number of leaks on trunk. I suggest to try the upcoming 2.10 release. Or the 2.9.2 release. I just tried with 2.10 and could not detect any leaks. I touched the web app 5 times davsclaus:/opt/apache-tomcat-7.0.26/webapps$ touch bar-1.0-SNAPSHOT.war davsclaus:/opt/apache-tomcat-7.0.26/webapps$ touch bar-1.0-SNAPSHOT.war davsclaus:/opt/apache-tomcat-7.0.26/webapps$ touch bar-1.0-SNAPSHOT.war davsclaus:/opt/apache-tomcat-7.0.26/webapps$ touch bar-1.0-SNAPSHOT.war davsclaus:/opt/apache-tomcat-7.0.26/webapps$ touch bar-1.0-SNAPSHOT.war And memory usage was low. When performing a GC I get down to 7-8mb.
        Hide
        Claus Ibsen added a comment -

        And my permgen, was not leaking, and getting down to 31mb - see tomcat2

        Show
        Claus Ibsen added a comment - And my permgen, was not leaking, and getting down to 31mb - see tomcat2
        Hide
        Claus Ibsen added a comment -

        I am trying with the 2.9-SNAPSHOT to see how it goes there.

        Show
        Claus Ibsen added a comment - I am trying with the 2.9-SNAPSHOT to see how it goes there.
        Hide
        Claus Ibsen added a comment -

        Looks fine with the 2.9-SNAPSHOT (to be 2.9.2 release).

        Show
        Claus Ibsen added a comment - Looks fine with the 2.9-SNAPSHOT (to be 2.9.2 release).

          People

          • Assignee:
            Claus Ibsen
            Reporter:
            Dan Richelson
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development