Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-28844

The curious case of the Channel memory cycles

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      • In larger installations of Jenkins the complex cycles of object references containing classloaders containing references to the channel which contains references back to the classloaders can confuse the garbage collector.
      • The confusion arrises because classloaders are considered live while there are objects from the classloader live and the RemoteClassLoader and RemoteInvocationHandler's proxy both need a reference to the Channel which typically can be storing either some of the objects from the RemoteClassLoader or the RemoteInvocationHandler's proxy instances in the Channel properties. Thus although the entire subgraph is no longer live, the cycle is not detected as ClassLoaders are treated separately. The issue is worse in Java 6/7 where the ClassLoaders are on the PermGen heap though it is also present in Java 8.
      • Typically multiple out of memory errors can cause the cycle to ultimately get cleaned up as one half gets cleared out breaking the cycle enough so that a subsequent out of memory removes the second half leaving a third out of memory to clear out the ClassLoaders... but after three out of memory errors in a row, Jenkins itself is typically well dead.
      • I suspect this issue is related to the eventual OOM that JNLP slaves die from after many reconnects

      CloudBees Ref: ZD-26018

        Attachments

          Issue Links

            Activity

            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Stephen Connolly
            Path:
            pom.xml
            http://jenkins-ci.org/commit/jenkins/aac20468ff5511ea6c58de07f3bcf3ae108b9cb0
            Log:
            [FIXED JENKINS-28844] The curious case of the Channel memory cycles

            Pick up the remoting 2.52 release

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: pom.xml http://jenkins-ci.org/commit/jenkins/aac20468ff5511ea6c58de07f3bcf3ae108b9cb0 Log: [FIXED JENKINS-28844] The curious case of the Channel memory cycles Pick up the remoting 2.52 release
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Stephen Connolly
            Path:
            pom.xml
            http://jenkins-ci.org/commit/jenkins/2906718ff53dd781a1248fff5dd56ac729438558
            Log:
            [FIXED JENKINS-28844] The curious case of the Channel memory cycles

            Pick up the remoting 2.52 release
            (cherry picked from commit aac20468ff5511ea6c58de07f3bcf3ae108b9cb0)

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: pom.xml http://jenkins-ci.org/commit/jenkins/2906718ff53dd781a1248fff5dd56ac729438558 Log: [FIXED JENKINS-28844] The curious case of the Channel memory cycles Pick up the remoting 2.52 release (cherry picked from commit aac20468ff5511ea6c58de07f3bcf3ae108b9cb0)
            Hide
            dogfood dogfood added a comment -

            Integrated in jenkins_main_trunk #4292
            [FIXED JENKINS-28844] The curious case of the Channel memory cycles (Revision 2906718ff53dd781a1248fff5dd56ac729438558)

            Result = UNSTABLE
            ogondza : 2906718ff53dd781a1248fff5dd56ac729438558
            Files :

            • pom.xml
            Show
            dogfood dogfood added a comment - Integrated in jenkins_main_trunk #4292 [FIXED JENKINS-28844] The curious case of the Channel memory cycles (Revision 2906718ff53dd781a1248fff5dd56ac729438558) Result = UNSTABLE ogondza : 2906718ff53dd781a1248fff5dd56ac729438558 Files : pom.xml
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Stephen Connolly
            Path:
            pom.xml
            http://jenkins-ci.org/commit/jenkins/9cd1929cfc80145657ad51c2d7d98d16b9f62195
            Log:
            Merge pull request #1766 from jenkinsci/jenkins-28844

            [FIXED JENKINS-28844] The curious case of the Channel memory cycles

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: pom.xml http://jenkins-ci.org/commit/jenkins/9cd1929cfc80145657ad51c2d7d98d16b9f62195 Log: Merge pull request #1766 from jenkinsci/jenkins-28844 [FIXED JENKINS-28844] The curious case of the Channel memory cycles
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: Stephen Connolly
            Path:
            changelog.html
            http://jenkins-ci.org/commit/jenkins/1edb51cb919a3270b26e8782a0426381385df9b9
            Log:
            JENKINS-28844 Noting merge of #1766

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Stephen Connolly Path: changelog.html http://jenkins-ci.org/commit/jenkins/1edb51cb919a3270b26e8782a0426381385df9b9 Log: JENKINS-28844 Noting merge of #1766

              People

              • Assignee:
                stephenconnolly Stephen Connolly
                Reporter:
                stephenconnolly Stephen Connolly
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: