Guice + Tomcat potential memory leak

孤者浪人 提交于 2019-11-29 06:07:52
Enno Shioji

If you are getting this when you shutdown the webapp, I wouldn't worry too much. This type of resource leak on app. shutdown is common. They do become a problem when you frequently do hot deploys (i.e. un-deploy many times without killing the JVM), but they won't be problematic when a cold deploy is done (un-deploy/deploy is done while killing the JVM before re-deploy).

A common tactic is that you do hot-deploys during development (as they are typically faster than cold-deploys), and only do a cold deploy when the resource leak starts to affect your performance. Then, in production you do a cold deploy on every deploy. Given the number of code/libraries that has this type of leak, trying to eliminate them would be hard IMO.

Jakub Holý

According to the Guice issue 630 it should be fixed in the next Guice version (as of 11/2011), i.e. when the Guava dependency is upgraded to r10+.

It seems that the fix is still not in, according to Guice issue 288.

Alex Pakka

This helped me to get rid of "SEVERE" log entry for com.google.inject.internal.InjectorImpl:

injector = null;
System.gc(); 

Where injector was the result of Guice.createInjector(...modules...)

I admit, it looks like I didn't read about bad habit of calling System.gc(), but it totally makes sense, since Guice uses weak references internally.

P.S. Tomcat 8, Java 8, Guice 3.0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!