Memory leak when using thymeleaf w/ Spring Boot

classic Classic list List threaded Threaded
3 messages Options
sb
Reply | Threaded
Open this post in threaded view
|

Memory leak when using thymeleaf w/ Spring Boot

sb
Hello,


Running into memory leak issues when un-deploying thymeleaf enabled spring boot application from Tomcat/WildFly containers.

Memory leak goes away as soon as I remove "spring-boot-starter-thymeleaf" from POM.xml.

To recreate the problem, I created a new Spring Starter Project with just Thymeleaf and web dependency. Packaged it, deployed the war file and then undeployed the war file and the memory leak was there.

I took several heap dumps and they all point toward Thymeleaf as well.

I have tried Java 1.7 and 1.8, Tomcat 7 and 8 and WildFly.

Here are some of the jar version:
spring-boot-starter-thymeleaf-1.3.1.RELEASE.jar
thymeleaf-spring4-2.1.4.RELEASE.jar
thymeleaf-2.1.4.RELEASE.jar
spring-boot-1.3.1.RELEASE.jar

Thanks!
Reply | Threaded
Open this post in threaded view
|

Re: Memory leak when using thymeleaf w/ Spring Boot

danielfernandez
Administrator
Could you give us more specific data on where in Thymeleaf did you find that memory leak? which was the structure that caused it?

Once confirmed, please open a GitHub ticket with the details.

Thanks,
Daniel.
sb
Reply | Threaded
Open this post in threaded view
|

Re: Memory leak when using thymeleaf w/ Spring Boot

sb
Class Name                                                                                                                                               | Shallow Heap | Retained Heap | Percentage
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                                                                                                                                         |              |               |          
org.apache.catalina.loader.WebappClassLoader @ 0x824fcc20                                                                                                |          144 |     9,456,888 |     31.35%
|- java.util.Vector @ 0x824fce58                                                                                                                         |           32 |     1,872,776 |      6.21%
|  '- java.lang.Object[10240] @ 0x8324c070                                                                                                               |       40,976 |     1,872,744 |      6.21%
|     |- class org.thymeleaf.templatemode.StandardTemplateModeHandlers @ 0x8346bb30                                                                      |           32 |       370,328 |      1.23%
|     |  |- org.thymeleaf.templatemode.TemplateModeHandler @ 0x8348aff0                                                                                  |           24 |       105,744 |      0.35%
|     |  |- org.thymeleaf.templatemode.TemplateModeHandler @ 0x8346bc78                                                                                  |           24 |       105,736 |      0.35%
|     |  |- org.thymeleaf.templatemode.TemplateModeHandler @ 0x834c7690                                                                                  |           24 |        52,816 |      0.18%
|     |  |- org.thymeleaf.templatemode.TemplateModeHandler @ 0x834a7d88                                                                                  |           24 |        52,760 |      0.17%
|     |  |- org.thymeleaf.templatemode.TemplateModeHandler @ 0x834b4bf8                                                                                  |           24 |        52,760 |      0.17%
|     |  |- java.util.HashSet @ 0x8346bbb8                                                                                                               |           16 |           352 |      0.00%
|     |  |- org.thymeleaf.templatemode.TemplateModeHandler @ 0x834a7ce8                                                                                  |           24 |           128 |      0.00%
|     |  '- Total: 7 entries                                                                                                                             |              |               |          
|     |- class org.springframework.core.SerializableTypeWrapper @ 0x82b8ec10                                                                             |            8 |       251,592 |      0.83%
|     |- class org.springframework.core.annotation.AnnotationUtils @ 0x82931188                                                                          |           40 |       114,128 |      0.38%
|     |- class org.springframework.beans.CachedIntrospectionResults @ 0x82b085f8                                                                         |           32 |        84,448 |      0.28%
|     |- class org.springframework.cglib.proxy.Enhancer @ 0x82e75fa0                                                                                     |          112 |        63,360 |      0.21%
|     |- class org.thymeleaf.Standards @ 0x8336c608                                                                                                      |          392 |        58,144 |      0.19%
|     |- class org.springframework.cglib.reflect.FastClass$Generator @ 0x82e96aa0                                                                        |            8 |        45,304 |      0.15%
|     |- class org.hibernate.validator.internal.util.logging.Log_$logger @ 0x82b52360                                                                    |          704 |        34,064 |      0.11%
|     |- class org.springframework.boot.context.embedded.MimeMappings @ 0x82a77900                                                                       |            8 |        29,768 |      0.10%
|     |- class org.thymeleaf.spring4.dialect.SpringStandardDialect @ 0x833852b0                                                                          |          208 |        27,696 |      0.09%
|     |- class org.springframework.core.convert.Property @ 0x82e9fdd0                                                                                    |            8 |        22,640 |      0.08%
|     |- class com.bnsf.monitor.domain.Events_$$_jvst68d_0 @ 0x83472900                                                                                  |           16 |        17,800 |      0.06%
|     |- class org.apache.commons.logging.LogFactory @ 0x8291ebd0                                                                                        |           48 |        15,352 |      0.05%
|     |- class org.springframework.expression.spel.support.StandardTypeConverter @ 0x833123d8                                                            |            8 |        14,864 |      0.05%
|     |- class org.springframework.http.HttpStatus @ 0x8352e920                                                                                          |          272 |        12,280 |      0.04%
|     |- class org.hibernate.metamodel.source.annotations.JPADotNames @ 0x8306a808                                                                       |          352 |        12,152 |      0.04%
|     |- class org.hibernate.cfg.AvailableSettings @ 0x830d7668                                                                                          |          488 |        11,728 |      0.04%
|     |- class org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration$EnableWebMvcConfiguration$$EnhancerBySpringCGLIB$$a441788d @ 0x82e40150|          160 |         9,296 |      0.03%
|     |- class org.springframework.data.jpa.repository.query.QueryUtils @ 0x83580b20                                                                     |           80 |         9,168 |      0.03%
|     |- class org.springframework.core.ResolvableType @ 0x82c7ad40                                                                                      |           16 |         8,504 |      0.03%
|     |- class org.codehaus.groovy.ast.ClassHelper$ClassHelperCache @ 0x83434b20                                                                         |            8 |         7,864 |      0.03%
|     |- class org.springframework.util.ReflectionUtils @ 0x82927c48                                                                                     |           32 |         7,576 |      0.03%
|     |- class org.springframework.data.repository.query.parser.Part$Type @ 0x8353e568                                                                   |          112 |         7,352 |      0.02%
|     |- class com.fasterxml.jackson.core.io.CharTypes @ 0x83544630                                                                                      |           40 |         6,376 |      0.02%
|     |- class org.springframework.core.GenericTypeResolver @ 0x82b71a10                                                                                 |            8 |         6,200 |      0.02%
|     '- Total: 25 of 7,168 entries; 7,143 more                                                                                                          |              |               |          
|- java.util.HashSet @ 0x824fe5b8                                                                                                                        |           16 |       221,936 |      0.74%
|- java.util.HashMap @ 0x824fe9a0                                                                                                                        |           48 |       221,888 |      0.74%
|- java.util.HashMap @ 0x824fe678                                                                                                                        |           48 |       148,720 |      0.49%
|- java.util.Hashtable @ 0x824fccb8                                                                                                                      |           48 |       104,192 |      0.35%
|- java.util.concurrent.ConcurrentHashMap @ 0x820b19e0                                                                                                   |           64 |        65,616 |      0.22%
|- java.util.HashMap @ 0x820ad988                                                                                                                        |           48 |        32,832 |      0.11%
|- java.util.ArrayList @ 0x820abb08                                                                                                                      |           24 |        23,528 |      0.08%
|- java.util.regex.Matcher @ 0x824fec38                                                                                                                  |           64 |         1,272 |      0.00%
|- java.security.ProtectionDomain @ 0x82b12340                                                                                                           |           40 |           944 |      0.00%
|- java.security.ProtectionDomain @ 0x82d5ca70                                                                                                           |           40 |           944 |      0.00%
|- java.security.ProtectionDomain @ 0x82b1faf0                                                                                                           |           40 |           936 |      0.00%
|- java.security.ProtectionDomain @ 0x82b1dd80                                                                                                           |           40 |           920 |      0.00%
|- java.security.ProtectionDomain @ 0x82b1eac0                                                                                                           |           40 |           920 |      0.00%
|- java.security.ProtectionDomain @ 0x835fb998                                                                                                           |           40 |           920 |      0.00%
|- java.security.ProtectionDomain @ 0x824fcee0                                                                                                           |           40 |           912 |      0.00%
|- java.security.ProtectionDomain @ 0x82afe440                                                                                                           |           40 |           912 |      0.00%
|- java.security.ProtectionDomain @ 0x83602190                                                                                                           |           40 |           912 |      0.00%
|- java.security.ProtectionDomain @ 0x825224d8                                                                                                           |           40 |           896 |      0.00%
|- java.security.ProtectionDomain @ 0x834d6198                                                                                                           |           40 |           896 |      0.00%
|- java.security.ProtectionDomain @ 0x82d69cb8                                                                                                           |           40 |           888 |      0.00%
|- java.security.ProtectionDomain @ 0x82fd17f8                                                                                                           |           40 |           888 |      0.00%
|- java.security.ProtectionDomain @ 0x830afec8                                                                                                           |           40 |           888 |      0.00%
|- java.security.ProtectionDomain @ 0x825221d8                                                                                                           |           40 |           880 |      0.00%
|- java.security.ProtectionDomain @ 0x82d68a28                                                                                                           |           40 |           880 |      0.00%
'- Total: 25 of 12,047 entries; 12,022 more                                                                                                              |              |               |          
java.net.URLClassLoader @ 0x820b2680                                                                                                                     |           80 |     4,314,000 |     14.30%
org.apache.tomcat.util.net.NioEndpoint @ 0x8222d738                                                                                                      |          288 |     1,052,640 |      3.49%
org.apache.tomcat.util.net.NioEndpoint @ 0x82243110                                                                                                      |          288 |     1,052,328 |      3.49%
org.apache.catalina.core.StandardContext @ 0x820377c8                                                                                                    |          512 |       328,224 |      1.09%
org.apache.catalina.core.ApplicationContext @ 0x82038000                                                                                                 |           64 |       300,472 |      1.00%
org.apache.catalina.valves.AccessLogValve @ 0x81824368                                                                                                   |          136 |       268,280 |      0.89%
sun.misc.Launcher$ExtClassLoader @ 0x820b2738                                                                                                            |           80 |       267,944 |      0.89%
org.apache.catalina.core.ApplicationContext @ 0x81abc780                                                                                                 |           64 |       263,160 |      0.87%
org.apache.catalina.core.ApplicationContext @ 0x82407d60                                                                                                 |           64 |       252,720 |      0.84%
org.apache.catalina.core.ApplicationContext @ 0x8238a7e8                                                                                                 |           64 |       248,760 |      0.82%
org.apache.catalina.core.ApplicationContext @ 0x817836d8                                                                                                 |           64 |       242,472 |      0.80%
org.apache.catalina.core.StandardContext @ 0x821a7830                                                                                                    |          512 |       241,968 |      0.80%
org.apache.catalina.core.StandardContext @ 0x823d3c38                                                                                                    |          512 |       233,208 |      0.77%
org.apache.catalina.core.StandardContext @ 0x82354f80                                                                                                    |          512 |       231,232 |      0.77%
org.apache.catalina.core.StandardContext @ 0x8219e198                                                                                                    |          512 |       228,280 |      0.76%
org.apache.catalina.core.StandardContext @ 0x823fea08                                                                                                    |          512 |       226,224 |      0.75%
org.apache.jasper.compiler.TldCache @ 0x81abc890                                                                                                         |           32 |       209,408 |      0.69%
class sun.nio.cs.ext.GB18030 @ 0x81c86610 System Class                                                                                                   |          144 |       195,360 |      0.65%
class sun.util.calendar.ZoneInfoFile @ 0x818cdfa8 System Class                                                                                           |          120 |       154,328 |      0.51%
org.apache.tomcat.util.modeler.Registry @ 0x82186c20                                                                                                     |           40 |       150,688 |      0.50%
class java.util.ResourceBundle @ 0x818c9ad8 System Class                                                                                                 |           24 |       150,160 |      0.50%
sun.misc.Launcher$AppClassLoader @ 0x820b26d8                                                                                                            |           88 |       144,864 |      0.48%
class sun.nio.cs.ext.MS949 @ 0x81c823a8 System Class                                                                                                     |           32 |       131,344 |      0.44%
class sun.nio.cs.ext.Johab @ 0x81c834f8 System Class                                                                                                     |           32 |       128,480 |      0.43%
java.util.jar.JarFile @ 0x821aece8                                                                                                                       |           64 |       125,000 |      0.41%
org.apache.juli.ClassLoaderLogManager @ 0x820b8a68                                                                                                       |           64 |       121,536 |      0.40%
class sun.nio.cs.ext.IBM1364 @ 0x81c84588 System Class                                                                                                   |           32 |       116,448 |      0.39%
class sun.nio.cs.ext.IBM933 @ 0x81c83fb8 System Class                                                                                                    |           32 |       114,664 |      0.38%
class sun.nio.cs.ext.IBM948 @ 0x81c83ac0 System Class                                                                                                    |           32 |       111,056 |      0.37%
Total: 30 of 21,355 entries; 21,325 more                                                                                                                 |              |               |          
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------