[ https://issues.jboss.org/browse/WFLY-12671?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13800394#comment-13800394 ]
Robin Schimpf commented on WFLY-12671:
--------------------------------------
I used the heapdump from the {{memory leak after 5 deployments.png}} screenshot and got this as result
{code}
Class Name | Ref. Objects | Shallow Heap | Ref. Shallow Heap | Retained Heap
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| | | |
class java.lang.ApplicationShutdownHooks @ 0x801041b0 System Class | 3 | 8 | 336 | 111.370.344
'- hooks java.util.IdentityHashMap @ 0x8033ba98 | 3 | 40 | 336 | 111.370.336
'- table java.lang.Object[64] @ 0x8033bac0 | 3 | 272 | 336 | 111.370.296
|- [24], [25] org.quartz.plugins.management.ShutdownHookPlugin$1 @ 0x8e90adb0 Quartz Shutdown-Hook TaskScheduler | 1 | 128 | 112 | 371.008
| '- val$scheduler org.quartz.impl.StdScheduler @ 0x8721c208 | 1 | 16 | 112 | 370.400
| '- sched org.quartz.core.QuartzScheduler @ 0x8721c218 | 1 | 88 | 112 | 370.384
|- [46], [47] org.quartz.plugins.management.ShutdownHookPlugin$1 @ 0xb036f5f8 Quartz Shutdown-Hook TaskScheduler | 1 | 128 | 112 | 371.192
| '- val$scheduler org.quartz.impl.StdScheduler @ 0x8821c4a0 | 1 | 16 | 112 | 370.584
| '- sched org.quartz.core.QuartzScheduler @ 0x8821c4b0 | 1 | 88 | 112 | 370.568
|- [48], [49] org.quartz.plugins.management.ShutdownHookPlugin$1 @ 0xbbc306a0 Quartz Shutdown-Hook TaskScheduler | 1 | 128 | 112 | 371.128
| '- val$scheduler org.quartz.impl.StdScheduler @ 0xaf4f5fd8 | 1 | 16 | 112 | 370.520
| '- sched org.quartz.core.QuartzScheduler @ 0xaf4f5fe8 | 1 | 88 | 112 | 370.504
'- Total: 3 entries | | | |
org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread @ 0xeb29d310 Lucene Merge Thread #2 for index Files Native Stack, Thread | 2 | 136 | 224 | 50.291.968
|- <JNI Local> class org.jboss.as.jpa.subsystem.PersistenceUnitRegistryImpl @ 0x8869d388 | 1 | 8 | 112 | 8
| '- INSTANCE org.jboss.as.jpa.subsystem.PersistenceUnitRegistryImpl @ 0x96314ff8 | 1 | 16 | 112 | 208
| '- registry java.util.Collections$SynchronizedMap @ 0x96315008 | 1 | 32 | 112 | 192
| '- m java.util.HashMap @ 0x96315028 | 1 | 48 | 112 | 160
| '- table java.util.HashMap$Node[16] @ 0x96315058 | 1 | 80 | 112 | 112
| '- [1] java.util.HashMap$Node @ 0xd339c0d8 | 1 | 32 | 112 | 32
| '- value org.jboss.as.jpa.service.PersistenceUnitServiceImpl @ 0xcf2e8470 | 1 | 80 | 112 | 1.192
| '- pu org.jboss.as.jpa.config.PersistenceUnitMetadataImpl @ 0xd15a74d0 | 1 | 112 | 112 | 86.151.344
|- <JNI Local> class org.jboss.resteasy.plugins.providers.jsonb.AbstractJsonBindingProvider @ 0xa61cafe8 | 1 | 16 | 112 | 343.456
| '- jsonbObj org.eclipse.yasson.internal.JsonBinding @ 0x8d477108 | 1 | 16 | 112 | 343.384
| '- jsonbContext org.eclipse.yasson.internal.JsonbContext @ 0x8d477118 | 1 | 48 | 112 | 343.368
| '- componentInstanceCreator org.eclipse.yasson.internal.components.BeanManagerInstanceCreator @ 0x8d477238 | 1 | 24 | 112 | 1.000
| '- beanManager org.jboss.weld.bean.builtin.BeanManagerProxy @ 0x84d725a8 | 1 | 24 | 112 | 24
| '- manager org.jboss.weld.manager.BeanManagerImpl @ 0x8d4783a0 | 1 | 152 | 112 | 8.880
| '- services org.jboss.weld.bootstrap.api.helpers.SimpleServiceRegistry @ 0x8d478438 | 1 | 24 | 112 | 4.328
| '- services java.util.HashMap @ 0x8d478450 | 1 | 48 | 112 | 3.504
| '- table java.util.HashMap$Node[128] @ 0x8d478490 | 1 | 528 | 112 | 3.440
| '- [24] java.util.HashMap$Node @ 0x8d4788d0 | 1 | 32 | 112 | 32
| '- value org.jboss.as.weld.services.bootstrap.WeldEjbInjectionServices @ 0x8d4788f0 | 1 | 40 | 112 | 40
| '- applicationDescription org.jboss.as.ee.component.EEApplicationDescription @ 0x85a796f0 | 1 | 24 | 112 | 396.064
| '- componentsByName java.util.HashMap @ 0x85a93900 | 1 | 48 | 112 | 44.216
| '- table java.util.HashMap$Node[512] @ 0x85a93930 | 1 | 2.064 | 112 | 44.168
| '- [45] java.util.HashMap$Node @ 0x85a94140 | 1 | 32 | 112 | 104
| '- value java.util.ArrayList @ 0x85a94160 | 1 | 24 | 112 | 72
| '- elementData java.lang.Object[1] @ 0x85a94178 | 1 | 24 | 112 | 48
| '- [0] org.jboss.as.ee.component.EEApplicationDescription$Description @ 0x85a94190 | 1 | 24 | 112 | 24
| '- componentDescription org.jboss.as.ejb3.component.stateless.StatelessComponentDescription @ 0x98216790 | 1 | 272 | 112 | 4.696
| '- moduleDescription org.jboss.as.ee.component.EEModuleDescription @ 0x982162b0 | 1 | 88 | 112 | 100.728
| '- classDescriptions java.util.HashMap @ 0x9829a5e8 | 1 | 48 | 112 | 85.368
| '- table java.util.HashMap$Node[128] @ 0x9829a628 | 1 | 528 | 112 | 85.304
| '- [40] java.util.HashMap$Node @ 0x9829ad58 | 1 | 32 | 112 | 752
| '- value org.jboss.as.ee.component.EEModuleClassDescription @ 0x9829ad90 | 1 | 40 | 112 | 696
| '- bindingConfigurations java.util.ArrayList @ 0x9829ae08 | 1 | 24 | 112 | 232
| '- elementData java.lang.Object[10] @ 0x9829ae20 | 1 | 56 | 112 | 208
| '- [0] org.jboss.as.ee.component.BindingConfiguration @ 0x9829ae58 | 1 | 24 | 112 | 152
| '- source org.jboss.as.jpa.injectors.PersistenceContextInjectionSource @ 0x9829ae88 | 1 | 24 | 112 | 128
| '- injectable org.jboss.as.jpa.injectors.PersistenceContextInjectionSource$PersistenceContextJndiInjectable @ 0x9829aea0| 1 | 48 | 112 | 72
| '- pu org.jboss.as.jpa.config.PersistenceUnitMetadataImpl @ 0x9829af08 | 1 | 112 | 112 | 85.624.920
'- Total: 2 entries | | | |
Total: 2 entries | 5 | 144 | 560 |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
{code}
Seems like lucene is holding the context which we use via the hibernate-search contained in Wildfly.
The ApplicationShutdownHooks tree is not fully expanded because there are coming some internal classes. The leaking there is most likely due to some of our code.
> Memory Leak of PersistenceUnitMetadataImpl
> ------------------------------------------
>
> Key: WFLY-12671
> URL: https://issues.jboss.org/browse/WFLY-12671
> Project: WildFly
> Issue Type: Bug
> Components: JPA / Hibernate
> Affects Versions: 17.0.1.Final
> Reporter: Robin Schimpf
> Assignee: Scott Marlow
> Priority: Major
> Attachments: Trying_to_catch_memory_leak_with_more_trace_logging.patch, jcaleakmarlow.txt, memory leak after 4 deployments.PNG, memory leak after 5 deployments.PNG, memory leak with directory scanner undeploy and deploy.PNG, persistence-unit-not-stopped.txt, persistence-unit-stopped.txt
>
>
> After updating from Wildfly 13 to Wildfly 17 we noticed a slowdown of our application after multiple deployments to the application server without restarting it between the deployments. Heapdumps are showing that after redeployment the number of {{PersistenceUnitMetadataImpl}} are growing (see screenshots).
> We are deploying 2 ear files and 2 war files. Only one ear has a database connection configured. We are using the bundeled hibernate version of Wildfly 17.
> The ear structure is like the following:
> {noformat}
> - app.ear
> |
> |- META-INF
> |
> |- lib
> | |
> | |- all dependencies
> |
> |- own jars and wars (e.g. jpa)
> {noformat}
> Since I failed to create a reproducing project for this behaviour I added some trace logging (Patch attached). The only difference I noticed was that sometimes the {{Stopping Persistence Unit}} logstatement is missing before the {{Stopped subdeployment}} logstatement.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)