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

CVS plugin creates hundreds of 'cvs server' processes which kill our Jenkins server

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Blocker
    • Resolution: Fixed
    • Component/s: cvs-plugin
    • Labels:
      None
    • Environment:
      Linux Ubuntu, Jenkins 1.424.2, cvs Plug-in 2.0
    • Similar Issues:

      Description

      The new plug-in seems to have a severe memory/process leak: After updating our Jenkisn server to 2.0 it took just half a day until our machine had no more ressources left. Jenkins had more than 13GByte virtual memory in the process monitor and we had hundreds of stale cvs processes around:

      hudson   14060     1  0 08:16 ?        00:00:00 cvs server
      hudson   14069     1  0 08:16 ?        00:00:00 cvs server
      hudson   14081     1  0 08:16 ?        00:00:00 cvs server
      hudson   14095     1  0 08:16 ?        00:00:00 cvs server
      hudson   14107     1  0 08:16 ?        00:00:00 cvs server
      hudson   14117     1  0 08:16 ?        00:00:00 cvs server
      hudson   14123     1  0 08:16 ?        00:00:00 cvs server
      hudson   14130     1  0 08:16 ?        00:00:00 cvs server
      hudson   14212     1  0 08:17 ?        00:00:00 cvs server
      hudson   14224     1  0 08:17 ?        00:00:00 cvs server
      hudson   14230     1  0 08:17 ?        00:00:00 cvs server
      hudson   14234     1  0 08:17 ?        00:00:00 cvs server
      hudson   14547     1  0 08:17 ?        00:00:00 cvs server
      hudson   14568     1  0 08:17 ?        00:00:00 cvs server
      hudson   14576     1  0 08:17 ?        00:00:00 cvs server
      hudson   14605     1  0 08:17 ?        00:00:00 cvs server
      hudson   14633     1  0 08:17 ?        00:00:00 cvs server
      hudson   14651     1  0 08:17 ?        00:00:00 cvs server
      hudson   14659     1  0 08:17 ?        00:00:00 cvs server
      hudson   14824     1  0 08:17 ?        00:00:00 cvs server
      hudson   14830     1  0 08:17 ?        00:00:00 cvs server
      hudson   14842     1  0 08:17 ?        00:00:00 cvs server
      hudson   14862     1  0 07:46 ?        00:00:00 cvs server
      hudson   14890     1  0 08:17 ?        00:00:00 cvs server
      hudson   14994     1  0 08:17 ?        00:00:00 cvs server
      hudson   15028     1  0 08:17 ?        00:00:00 cvs server
      hudson   15055     1  0 08:17 ?        00:00:00 cvs server
      hudson   15112     1  0 08:17 ?        00:00:01 cvs server
      hudson   15242     1  0 08:17 ?        00:00:00 cvs server
      hudson   15284     1  0 08:17 ?        00:00:00 cvs server
      hudson   15316     1  0 08:17 ?        00:00:00 cvs server
      hudson   15537     1  0 08:17 ?        00:00:00 cvs server
      

        Attachments

          Activity

          Hide
          mc1arke Michael Clarke added a comment -

          Can you attach your job configuration please?

          Show
          mc1arke Michael Clarke added a comment - Can you attach your job configuration please?
          Hide
          simix Simon Matter added a comment -

          Maybe this is related to what we see. We're using cvs via xinetd and see never ending cvs sessions. Of course xinetd prevents from running out of ressources because the number of running (hanging around) sessions is limited. See here

          https://issues.jenkins-ci.org/browse/JENKINS-12595

          Show
          simix Simon Matter added a comment - Maybe this is related to what we see. We're using cvs via xinetd and see never ending cvs sessions. Of course xinetd prevents from running out of ressources because the number of running (hanging around) sessions is limited. See here https://issues.jenkins-ci.org/browse/JENKINS-12595
          Hide
          mc1arke Michael Clarke added a comment -

          I need to see the job configuration, or at least have an idea of what your CVSROOT field entry is. CVS Server processes are launched for :local: connections which is what I think is configured for the job causing this defect but can't replicate it until I'm sure.

          Show
          mc1arke Michael Clarke added a comment - I need to see the job configuration, or at least have an idea of what your CVSROOT field entry is. CVS Server processes are launched for :local: connections which is what I think is configured for the job causing this defect but can't replicate it until I'm sure.
          Hide
          dogfood dogfood added a comment -

          Integrated in plugins_cvs #3
          [Fixed JENKINS-12612] Ensuring all connections are closed on completion. (Revision 39da7984c7efa5d43f927a496d99f65ae3349122)

          Result = SUCCESS
          michael.m.clarke :
          Files :

          • src/main/java/hudson/scm/CVSSCM.java
          • src/main/java/hudson/scm/cvstagging/CvsTagActionWorker.java
          • src/main/java/hudson/scm/cvstagging/LegacyTagAction.java
          Show
          dogfood dogfood added a comment - Integrated in plugins_cvs #3 [Fixed JENKINS-12612] Ensuring all connections are closed on completion. (Revision 39da7984c7efa5d43f927a496d99f65ae3349122) Result = SUCCESS michael.m.clarke : Files : src/main/java/hudson/scm/CVSSCM.java src/main/java/hudson/scm/cvstagging/CvsTagActionWorker.java src/main/java/hudson/scm/cvstagging/LegacyTagAction.java
          Hide
          drulli Ulli Hafner added a comment -

          Sorry about the late answer, seems that my Jira mails went directly to the SPAM folder.

          Here is our configuration (in 1.6 format):

            <scm class="hudson.scm.CVSSCM">
              <cvsroot>/usr/local/cvsroot</cvsroot>
              <module>org.faktorips.devtarget.galileo
          org.faktorips.feature
          org.faktorips.feature.nls1
          org.faktorips.feature.test
          org.faktorips.ormext.feature
          org.faktorips.ormext.feature.nls1
          org.faktorips.ormext.feature.test
          org.faktorips.abstracttest
          org.faktorips.devtools.ant
          org.faktorips.devtools.ant.test
          org.faktorips.devtools.core
          org.faktorips.devtools.core.test
          org.faktorips.devtools.core.ui
          org.faktorips.devtools.core.ui.test
          org.faktorips.devtools.htmlexport
          org.faktorips.devtools.htmlexport.test
          org.faktorips.devtools.htmlexport.nl1
          org.faktorips.devtools.ormext
          org.faktorips.devtools.ormext.hibernate
          org.faktorips.devtools.ormext.test
          org.faktorips.devtools.ormext.ui
          org.faktorips.devtools.stdbuilder
          org.faktorips.devtools.stdbuilder.test
          org.faktorips.devtools.stdbuilder.ui
          org.faktorips.devtools.stdbuilder.ui.test
          org.faktorips.devtools.tableconversion
          org.faktorips.devtools.tableconversion.nl1
          org.faktorips.devtools.tableconversion.test
          org.faktorips.dtflcommon
          org.faktorips.dtflcommon.test
          org.faktorips.fl
          org.faktorips.fl.test
          org.faktorips.nls.devtools.core.nl1
          org.faktorips.nls.devtools.core.ui.nl1
          org.faktorips.nls.devtools.stdbuilder.nl1
          org.faktorips.nls.devtools.stdbuilder.ui.nl1
          org.faktorips.nls.devtools.ormext.nl1
          org.faktorips.nls.devtools.ormext.ui.nl1
          org.faktorips.runtime.addons
          org.faktorips.runtime.addons.test
          org.faktorips.runtime.java5
          org.faktorips.runtime.java5.test
          org.faktorips.runtime.groovy
          org.faktorips.runtime.groovy.test
          org.faktorips.runtime.productdataservice
          org.faktorips.runtime.productdataservice.common
          org.faktorips.runtime.productdataprovider.ejbclient
          org.faktorips.runtime.productdataprovider.ejbclient.test
          org.faktorips.util
          org.faktorips.util.test
          org.faktorips.valuetypes.java5
          org.faktorips.valuetypes.java5.test
          org.faktorips.uml
          org.faktorips.uml.feature
          org.faktorips.uml.feature.nls1
          org.faktorips.uml.feature.test
          org.faktorips.uml.nl1
          org.faktorips.uml.test
          org.faktorips.pluginbuilder</module>
              <canUseUpdate>true</canUseUpdate>
              <flatten>false</flatten>
              <isTag>false</isTag>
              <excludedRegions>org/faktorips/fl/parser/.*
          .*pluginbuilder\.config.*
          .*allElements\.xml.*
          .*all\.map
          .*eclipse.*
          </excludedRegions>
            </scm>
          
          Show
          drulli Ulli Hafner added a comment - Sorry about the late answer, seems that my Jira mails went directly to the SPAM folder. Here is our configuration (in 1.6 format): <scm class= "hudson.scm.CVSSCM" > <cvsroot>/usr/local/cvsroot</cvsroot> <module>org.faktorips.devtarget.galileo org.faktorips.feature org.faktorips.feature.nls1 org.faktorips.feature.test org.faktorips.ormext.feature org.faktorips.ormext.feature.nls1 org.faktorips.ormext.feature.test org.faktorips.abstracttest org.faktorips.devtools.ant org.faktorips.devtools.ant.test org.faktorips.devtools.core org.faktorips.devtools.core.test org.faktorips.devtools.core.ui org.faktorips.devtools.core.ui.test org.faktorips.devtools.htmlexport org.faktorips.devtools.htmlexport.test org.faktorips.devtools.htmlexport.nl1 org.faktorips.devtools.ormext org.faktorips.devtools.ormext.hibernate org.faktorips.devtools.ormext.test org.faktorips.devtools.ormext.ui org.faktorips.devtools.stdbuilder org.faktorips.devtools.stdbuilder.test org.faktorips.devtools.stdbuilder.ui org.faktorips.devtools.stdbuilder.ui.test org.faktorips.devtools.tableconversion org.faktorips.devtools.tableconversion.nl1 org.faktorips.devtools.tableconversion.test org.faktorips.dtflcommon org.faktorips.dtflcommon.test org.faktorips.fl org.faktorips.fl.test org.faktorips.nls.devtools.core.nl1 org.faktorips.nls.devtools.core.ui.nl1 org.faktorips.nls.devtools.stdbuilder.nl1 org.faktorips.nls.devtools.stdbuilder.ui.nl1 org.faktorips.nls.devtools.ormext.nl1 org.faktorips.nls.devtools.ormext.ui.nl1 org.faktorips.runtime.addons org.faktorips.runtime.addons.test org.faktorips.runtime.java5 org.faktorips.runtime.java5.test org.faktorips.runtime.groovy org.faktorips.runtime.groovy.test org.faktorips.runtime.productdataservice org.faktorips.runtime.productdataservice.common org.faktorips.runtime.productdataprovider.ejbclient org.faktorips.runtime.productdataprovider.ejbclient.test org.faktorips.util org.faktorips.util.test org.faktorips.valuetypes.java5 org.faktorips.valuetypes.java5.test org.faktorips.uml org.faktorips.uml.feature org.faktorips.uml.feature.nls1 org.faktorips.uml.feature.test org.faktorips.uml.nl1 org.faktorips.uml.test org.faktorips.pluginbuilder</module> <canUseUpdate> true </canUseUpdate> <flatten> false </flatten> <isTag> false </isTag> <excludedRegions>org/faktorips/fl/parser/.* .*pluginbuilder\.config.* .*allElements\.xml.* .*all\.map .*eclipse.* </excludedRegions> </scm>
          Hide
          mc1arke Michael Clarke added a comment -

          Fixed in version 2.1 by closing CVS connection on job completion which allows CVS server process for :local: connections to exit.

          Show
          mc1arke Michael Clarke added a comment - Fixed in version 2.1 by closing CVS connection on job completion which allows CVS server process for :local: connections to exit.

            People

            • Assignee:
              mc1arke Michael Clarke
              Reporter:
              drulli Ulli Hafner
            • Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: