Resolving PermGen issue when redeploying with Jetty 7

After several days of debugging, it turned out that in Tomcat 6.0.32, remote deployment of medium and large web applications without leakage was PermGen . I saw PermGen after populating it, and class loaders were garbage collected.

After much joy, I tried to redeploy the application without leaks in our development environment, which consists of Maven and the Jetty plugin.

Unfortunately, I seem to have hit the server limit as shown in the following screenshot

Yourkit Snapshot http://img811.imageshack.us/img811/7320/jettyclassloaderbeanelr.png

In Jetty's request streams, there is a link to BeanElResolver , which in turn has a strong link to several classes from my webapp.

I did not find a link on how to clear this information.

How to remove this latest PermGen leak from my application?


Update:

I did the following to fix this problem, no luck:

  • updated to the latest version of the Jetty plugin (both 7.4.5 and 8.0.0.M3)
  • used the collector CMS: -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

Update 2:

+6
source share
2 answers

This is a real mistake in the EL implementation that works in the latest versions of Jetty.

Version 7.5.0, after its release, will contain a fix.

+2
source

Not a direct answer to your question, but you can use JRebel in dev. With JRebel, you no longer need to relocate, thereby avoiding both intersection leaks and lost redistribution time. This worked very well for me.

0
source

Source: https://habr.com/ru/post/893503/


All Articles