Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-84626

Large number of AggregateClassLoaders created for cluster activity

    Details

      Description

      As part of normal cluster activity, we create an AggregateClassLoader to process every message. This can cause problems on IBM JDK, where a full garbage collection for a large number of class loaders will randomly take a long time (experiments randomly showed 2+ minutes, and some customers report 9+ minutes).

      We can reproduce the large number of class loaders with the following steps.

      Steps to Reproduce

      1. Start up the master node in your Liferay cluster.
      2. Use an IDE and attach a non-suspending, "Breakpoint hit" logging breakpoint to the call to the super constructor in AggregateClassLoader: https://github.com/liferay/liferay-portal/blob/7.1.0-ga1/portal-kernel/src/com/liferay/portal/kernel/util/AggregateClassLoader.java#L77
      3. Start up the second node in your Liferay cluster.
      4. Attempt to login/logout on the second node several times.

      Expected behavior is that only a small number of class loaders will get created, and you won't see many messages in your IDE console. Actual behavior is that each login will create several dozen class loaders from the cluster invalidation activity sent from node2 to node1, and your IDE console will have hundreds of messages.

        Attachments

          Activity

            People

            • Assignee:
              sharry.shi Sharry Shi
              Reporter:
              minhchau.dang Minhchau Dang
              Participants of an Issue:
              Recent user:
              Csaba Turcsan
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Days since last comment:
                1 year, 2 weeks, 4 days ago

                Packages

                Version Package
                7.0.0 DXP FP60
                7.0.0 DXP SP9
                7.0.X
                7.1.10 DXP FP2
                7.1.1 CE GA2
                7.1.10.1 SP1
                7.1.X
                Master