Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-3810

Memory leak in XARecoveryModule

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • None
    • 6.0.1.Final
    • JTA
    • None
    • Hide
      • Start the Wildfly / EAP app server in default configuration (standalone.xml),
      • repeatedly call the `:reload` operation in JBoss CLI,
      • using a profiling tool you can watch the XAResourceRecoveryHelperWrapper instances accumulate (together with other related classes like XATerminator, JBossLocalTransactionProvider$XAImporterImpl, JBossJTALocalTransactionProvider, etc)

      See JBEAP-25588 for more involved reproducer.

      Show
      Start the Wildfly / EAP app server in default configuration (standalone.xml), repeatedly call the `:reload` operation in JBoss CLI, using a profiling tool you can watch the XAResourceRecoveryHelperWrapper instances accumulate (together with other related classes like XATerminator, JBossLocalTransactionProvider$XAImporterImpl, JBossJTALocalTransactionProvider, etc) See JBEAP-25588 for more involved reproducer.

      The XARecoveryModule class contains collection variable _xaResourceRecoveryHelpers. Items are added to this collection using the XARecoveryModule#addXAResourceRecoveryHelper() method and can be removed using the XARecoveryModule#removeXAResourceRecoveryHelper().

      The problem is that at least some of the XAResourceRecoveryHelper instances added to the collection are never removed. This is observed in the context of app server reload operation - during each reload, new XAResourceRecoveryHelper instances are added to the collection, and are never removed.

      This is a component of https://issues.redhat.com/browse/JBEAP-25588.

      Snippet from tooling report of accumulating class instances:

      |           144672 bytes (+528)|          3014 instances (+11)|org.wildfly.transaction.client.provider.jboss.JBossJTALocalTransactionProvider
      |           142104 bytes (+504)|          5921 instances (+21)|io.undertow.server.DefaultByteBufferPool$ThreadLocalData
      |           120880 bytes (+440)|          3022 instances (+11)|java.io.FilePermission (java.base@17.0.8)
      |            96448 bytes (+352)|          3014 instances (+11)|org.wildfly.transaction.client.provider.jboss.FileSystemXAResourceRegistry
      |            48224 bytes (+176)|          3014 instances (+11)|com.arjuna.ats.internal.jbossatx.jta.XAResourceRecoveryHelperWrapper
      |            48224 bytes (+176)|          3014 instances (+11)|com.arjuna.ats.internal.jbossatx.jta.jca.XATerminator
      |            48224 bytes (+176)|          3014 instances (+11)|org.wildfly.transaction.client.provider.jboss.JBossLocalTransactionProvider$$Lambda$813/0x00007f373a73e3a8
      |            48224 bytes (+176)|          3014 instances (+11)|org.wildfly.transaction.client.provider.jboss.JBossLocalTransactionProvider$XAImporterImpl
      

            rh-ee-msappegr Marco Sappe Griot
            thofman Tomas Hofman
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: