我正在尝试追踪PermGen错误的原因,该错误的行为与我之前遇到的错误不同。
当热部署(是的,我知道)到自定义容器(是的,我知道)时会发生。
使用
在vm上运行时在5次重新部署时可靠地发生PermGen错误。
使用相同版本的java在我的Ubuntu 14.04.1计算机上运行,我可以毫不费力地重复部署100次。
上述测试完全自动化,因此所有JVM标志,版本,代码等都相同。
热部署代码启动JMS侦听器。我最初假设问题是由持有类引用的jms代码在幕后创建的ThreadLocal但是
1)在堆转储中,我不看到保留的类加载器 - 它们似乎正在按预期方式进行GC
2)Permgen永远不会在ubuntu上运行相同的jvm(如上所述)
看来问题在某种程度上与潜在的操作系统有关。
任何可能导致这种情况的想法?