javax.faces.component.StateHolderSaver可能的内存泄漏

时间:2019-07-16 09:22:11

标签: jsf primefaces jboss primefaces-extensions

我们最近将应用程序从Jboss EAP 6.1迁移到7.1。我们的应用程序开始随机进入一个完整的GC死亡螺旋(平均时间12秒停止运行),并在生产环境中耗尽内存。

我们从Jboss EAP 6.1迁移到7.1

  • Java从7到8
  • JSF从2.1(2.1.28.redhat-3)到2.2(2.2.13.SP4-redhat-1)
  • 从4休眠到5

我们还有:

  • Primefaces 6.1
  • Primefaces扩展6.1.1(大量使用DynaForm)

该应用程序在带有PF 6.1和PFE 6.1.1的Jboss EAP 6中可以正常工作。

在JBoss死亡之前,我们进行了一些堆转储,并注意到有一个线程在保留的堆中占用3.28 GB的内存。 3.27 GB是一个java.util.HashMap,每个节点包含数百万个

 javax.faces.component.StateHolderSaver

enter image description here 我们已经阅读了这个https://github.com/primefaces/primefaces/issues/4849,看起来与我们的问题类似,但是我们没有导致问题的组件p:autoUpdate。

更新1

我注意到在降级到JSF 2.1(自定义模块到JBoss)的本地环境中,javax.faces.component.StateHolderSaver的数量没有成倍增加。这两个版本有什么不同?

什么会导致此内存泄漏?

感谢您的帮助。

0 个答案:

没有答案