-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Platform: PC, OS: Windows XP
-
Powered by SuggestiMate
In our hudson console we get lots of...
08-Jun-2009 13:45:57 hudson.Proc$LocalProc join
WARNING: Process leaked file descriptors. See
http://hudson.gotdns.com/wiki/display/JENKINS/Spawning+processes+from+build
for more information
java.lang.Exception
at hudson.Proc$LocalProc.join(Proc.java:156)
at hudson.scm.CVSSCM.run(CVSSCM.java:953)
at hudson.scm.CVSSCM.update(CVSSCM.java:524)
at hudson.scm.CVSSCM.pollChanges(CVSSCM.java:295)
at hudson.model.AbstractProject.pollSCMChanges(AbstractProject.java:880)
at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:382)
at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:417)
at java.util.concurrent.Executors$RunnableAdapter.call
(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
08-Jun-2009 13:46:00 hudson.Proc$LocalProc join
This is hudson running in cygwin on windows xp.
[JENKINS-3848] cvs polling leaks file descriptors
Thanks for the reply kohsuke.
We are using an internal cvs server. I cant give you the exact URL (I would get
told off) but it is a pretty standard pserver URL.
So you are thinking that the server is a bit slow?
This problem happens only when cvs forks additional child processes that
inherits stdout/stderr from cvs, and when they hang around even after cvs dies.
I was expecting CVSROOT to be :ext: and you have some tunneling program.
To diagnose this error, please go to the system that exhibits this problem, and
run "ps -ef" repeatedly and check what processes are there.
Once Hudson reports this error message, it kills off them, so you probably want
to write a quick script to pick up processes every 3 sec or so.
Hudson server is on windows so I have used the sysinternals procexp.exe program
to visually monitor processes on the machine - always interesting what pops up.
However I can only see cvs.exe processes appearing.
Interesting though in that about 8 of them appear at the same time, e.g. 10:51,
10:56, 11:01 etc. If I have many tasks all configured to poll SCM with the same
schedule e.g. */5 * * * * then they will all run cvs.exe at the same time.
Does Hudson give the forked process a timeout limit?
Should we stagger our polling to so that they happen at different times?
Or just use the max concurrent polling setting? Ive just set this to 4 to see
what effect this has.
Code changed in jenkins
User: mc1arke
Path:
pom.xml
src/main/java/hudson/org/apache/tools/ant/taskdefs/AbstractCvsTask.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/CVSEntry.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogParser.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogTask.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/ChangeLogWriter.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/CvsUser.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RCSFile.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RedirectingOutputStream.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/RedirectingStreamHandler.java
src/main/java/hudson/org/apache/tools/ant/taskdefs/cvslib/package.html
src/main/java/hudson/scm/CVSChangeLogParser.java
src/main/java/hudson/scm/CVSChangeLogSet.java
src/main/java/hudson/scm/CVSRepositoryBrowser.java
src/main/java/hudson/scm/CVSSCM.java
src/main/java/hudson/scm/CvsChangeLogHelper.java
src/main/java/hudson/scm/CvsChangeSet.java
src/main/java/hudson/scm/CvsFile.java
src/main/java/hudson/scm/CvsModule.java
src/main/java/hudson/scm/CvsModuleLocation.java
src/main/java/hudson/scm/CvsModuleLocationType.java
src/main/java/hudson/scm/CvsRepository.java
src/main/java/hudson/scm/CvsRevisionState.java
src/main/java/hudson/scm/ExcludedRegion.java
src/main/java/hudson/scm/LegacyConvertor.java
src/main/java/hudson/scm/MailAddressResolverImpl.java
src/main/java/hudson/scm/cvstagging/CvsTagAction.java
src/main/java/hudson/scm/cvstagging/CvsTagActionDescriptor.java
src/main/java/hudson/scm/cvstagging/CvsTagActionWorker.java
src/main/java/hudson/scm/cvstagging/LegacyTagAction.java
src/main/resources/hudson/scm/CVSSCM/DescriptorImpl/enterPassword.jelly
src/main/resources/hudson/scm/CVSSCM/DescriptorImpl/versionCheckError.jelly
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_de.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_fr.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_ja.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_nl.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_pt_BR.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_ru.html
src/main/resources/hudson/scm/CVSSCM/TagAction/help-tagAll_tr.html
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm.jelly
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_de.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_es.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_fr.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_ja.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_nl.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_pt_BR.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_ru.properties
src/main/resources/hudson/scm/CVSSCM/TagAction/tagForm_tr.properties
src/main/resources/hudson/scm/CVSSCM/config.jelly
src/main/resources/hudson/scm/CVSSCM/config.properties
src/main/resources/hudson/scm/CVSSCM/global.jelly
src/main/resources/hudson/scm/CVSSCM/help-allModules.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_de.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_fr.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_ja.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_nl.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_pt_BR.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_ru.html
src/main/resources/hudson/scm/CVSSCM/help-allModules_tr.html
src/main/resources/hudson/scm/CVSSCM/help-branch.html
src/main/resources/hudson/scm/CVSSCM/help-branch_de.html
src/main/resources/hudson/scm/CVSSCM/help-branch_fr.html
src/main/resources/hudson/scm/CVSSCM/help-branch_ja.html
src/main/resources/hudson/scm/CVSSCM/help-branch_nl.html
src/main/resources/hudson/scm/CVSSCM/help-branch_pt_BR.html
src/main/resources/hudson/scm/CVSSCM/help-branch_ru.html
src/main/resources/hudson/scm/CVSSCM/help-branch_tr.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_de.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_fr.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_ja.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_nl.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_pt_BR.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_ru.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_tr.html
src/main/resources/hudson/scm/CVSSCM/help-cvsExe_zh_CN.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_de.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_fr.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_ja.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_nl.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_pt_BR.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_ru.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRoot_tr.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_de.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_fr.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_ja.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_nl.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_pt_BR.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_ru.html
src/main/resources/hudson/scm/CVSSCM/help-cvsRsh_tr.html
src/main/resources/hudson/scm/CVSSCM/help-cvspassFile.html
src/main/resources/hudson/scm/CVSSCM/help-cvspassFile_de.html
src/main/resources/hudson/scm/CVSSCM/help-cvspassFile_fr.html
src/main/resources/hudson/scm/CVSSCM/help-cvspassFile_ja.html
src/main/resources/hudson/scm/CVSSCM/help-cvspassFile_zh_CN.html
src/main/resources/hudson/scm/CVSSCM/help-disableCvsQuiet.html
src/main/resources/hudson/scm/CVSSCM/help-excludedRegions.html
src/main/resources/hudson/scm/CVSSCM/help-excludedRegions_de.html
src/main/resources/hudson/scm/CVSSCM/help-excludedRegions_fr.html
src/main/resources/hudson/scm/CVSSCM/help-excludedRegions_ja.html
src/main/resources/hudson/scm/CVSSCM/help-pruneEmptyDirectories.html
src/main/resources/hudson/scm/CVSSCM/help-skipChangeLog.html
src/main/resources/hudson/scm/CVSSCM/help-useHeadIfNotFound.html
src/main/resources/hudson/scm/CVSSCM/help-useHeadIfNotFound_de.html
src/main/resources/hudson/scm/CvsModule/config.jelly
src/main/resources/hudson/scm/CvsModule/config.properties
src/main/resources/hudson/scm/CvsModule/config_de.properties
src/main/resources/hudson/scm/CvsModule/config_es.properties
src/main/resources/hudson/scm/CvsModule/config_fr.properties
src/main/resources/hudson/scm/CvsModule/config_ja.properties
src/main/resources/hudson/scm/CvsModule/config_nl.properties
src/main/resources/hudson/scm/CvsModule/config_pt_BR.properties
src/main/resources/hudson/scm/CvsModule/config_ru.properties
src/main/resources/hudson/scm/CvsModule/config_tr.properties
src/main/resources/hudson/scm/CvsModule/help-branchName.html
src/main/resources/hudson/scm/CvsModule/help-localName.html
src/main/resources/hudson/scm/CvsModule/help-remoteName.html
src/main/resources/hudson/scm/CvsModule/help-tagName.html
src/main/resources/hudson/scm/CvsModule/help-useHeadIfNotFound.html
src/main/resources/hudson/scm/CvsModule/help-useHeadIfNotFound_de.html
src/main/resources/hudson/scm/CvsModuleLocation/BranchModuleLocation/config.jelly
src/main/resources/hudson/scm/CvsModuleLocation/HeadModuleLocation/config.jelly
src/main/resources/hudson/scm/CvsModuleLocation/TagModuleLocation/config.jelly
src/main/resources/hudson/scm/CvsRepository/config.jelly
src/main/resources/hudson/scm/CvsRepository/config.properties
src/main/resources/hudson/scm/CvsRepository/config_de.properties
src/main/resources/hudson/scm/CvsRepository/config_es.properties
src/main/resources/hudson/scm/CvsRepository/config_fr.properties
src/main/resources/hudson/scm/CvsRepository/config_ja.properties
src/main/resources/hudson/scm/CvsRepository/config_nl.properties
src/main/resources/hudson/scm/CvsRepository/config_pt_BR.properties
src/main/resources/hudson/scm/CvsRepository/config_ru.properties
src/main/resources/hudson/scm/CvsRepository/config_tr.properties
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_de.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_fr.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_ja.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_nl.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_pt_BR.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_ru.html
src/main/resources/hudson/scm/CvsRepository/help-cvsRoot_tr.html
src/main/resources/hudson/scm/CvsRepository/help-excludedRegions.html
src/main/resources/hudson/scm/CvsRepository/help-excludedRegions_de.html
src/main/resources/hudson/scm/CvsRepository/help-excludedRegions_fr.html
src/main/resources/hudson/scm/CvsRepository/help-excludedRegions_ja.html
src/main/resources/hudson/scm/ExcludedRegion/config.jelly
src/main/resources/hudson/scm/cvs/Messages.properties
src/main/resources/hudson/scm/cvs/Messages_de.properties
src/main/resources/hudson/scm/cvs/Messages_es.properties
src/main/resources/hudson/scm/cvs/Messages_fr.properties
src/main/resources/hudson/scm/cvs/Messages_ja.properties
src/main/resources/hudson/scm/cvs/Messages_nl.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_de.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_fr.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_ja.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_nl.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_pt_BR.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_ru.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/help-tagAll_tr.html
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm.jelly
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_de.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_es.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_fr.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_ja.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_nl.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_pt_BR.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_ru.properties
src/main/resources/hudson/scm/cvstagging/CvsTagAction/tagForm_tr.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_de.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_fr.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_ja.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_nl.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_pt_BR.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_ru.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/help-tagAll_tr.html
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm.jelly
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_de.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_es.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_fr.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_ja.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_nl.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_pt_BR.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_ru.properties
src/main/resources/hudson/scm/cvstagging/LegacyTagAction/tagForm_tr.properties
src/test/java/hudson/scm/CVSSCMTest.java
src/test/java/hudson/scm/CvsChangeLogHelperTest.java
http://jenkins-ci.org/commit/cvs-plugin/1c6ddef1e5c1c3fe9f1a236fe4cc3aa336b8ca21
Log:
Merge pull request #5 from mc1arke/master
Overhaul of the cvs plugin
Changes:
- Allowing checking out modules from different branch/tags in a single repository (
JENKINS-768,JENKINS-6812) - Allowing multiple repositories in a single job i.e. multiple CVS roots (
JENKINS-2638) - Using a Java CVS Library rather than depend on a system library (
JENKINS-49,JENKINS-3848,JENKINS-3756,JENKINS-1676) - Use 'rlog' for polling and change-log generation and 'rtag' for tagging (
JENKINS-6312,JENKINS-10981,JENKINS-11787,JENKINS-1847,JENKINS-1359,JENKINS-76,JENKINS-9809,JENKINS-2710,JENKINS-5744,JENKINS-4604) - Restrict CVS to only check-out configured modules and not other CVS items in the workspace (
JENKINS-7449,JENKINS-2345,JENKINS-4489,JENKINS-1638,JENKINS-528) - Add check-box to allow disabling change-log generation per project (
JENKINS-3979) - Leave CVS/Entries contents in their original encoding (
JENKINS-4241,JENKINS-2614) - Making CVS Prune (-p parameter) optional through job configuration (
JENKINS-1013) - Improving warnings and validation (
JENKINS-9670,JENKINS-9045,JENKINS-7407,JENKINS-3133) - Fixing cyclic dependency with subversion plugin in POM (
JENKINS-10370) - Fixing 'after-the-fact' tagging of builds (
JENKINS-8128) - Improved date format on CVS commands (
JENKINS-6119,JENKINS-7833) - Allowing macro/parameter expansion on input fields (
JENKINS-2318,JENKINS-3821) - Fixing missing CVS change log entries when 'use head if not found' is used (
JENKINS-12104)
Potentially also fixes:
JENKINS-1737: Alternative Quiet Period Implementation (untested - updated polling should fix this)
JENKINS-10843: CVS Update (defect is unclear)
JENKINS-427: Cannot check out alias modules from CVS (untested - using rlog should fix this)
It's probably worth updating the version number in the POM to 2.0 given the number/scale of these changes, although this hasn't been included as part of this request.
Compare: https://github.com/jenkinsci/cvs-plugin/compare/7b57474...1c6ddef
As of version 2.0, cvs plugin now uses a java cvs library so doesn't leave processes running after polling completes and therefore fixes this issue
This is your CVS process forking additional processes that didn't quite in time,
as the wiki page indicates.
What's the CVSROOT that you use?