[ 
https://issues.jenkins-ci.org/browse/JENKINS-3105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=161734#comment-161734
 ] 

Neil Bird commented on JENKINS-3105:
------------------------------------

As it seems vaguely appropriate, I shall repeat here for interested parties 
what I've just commented on [issue 
#9104|https://issues.jenkins-ci.org/browse/JENKINS-9104?focusedCommentId=161729#comment-161729]
 :

Visual Studio is so ubiquitous that I personally think this could warrant a 
special case built into Jenkins, but anyway this is what we have just started 
doing (before calling devenv but after the MSC setup.bat has been called) to 
work around this (for all Windows builds):

{quote}
:: PITA to keep MSPDBSRV alive
set ORIG_BUILD_ID=%BUILD_ID%
set BUILD_ID=DoNotKillMe
start mspdbsrv -start -spawn
set BUILD_ID=%ORIG_BUILD_ID%
set ORIG_BUILD_ID=
{quote}

It seems, from reading around, that the Jenkins process “tree” killer rummages 
through the *whole* process tree looking for processes with the environment 
variable BUILD_ID set to what Jenkins originally set it to, and killing any it 
finds. The above temporarily changes that to something else (anything, you 
could even just blank it), launches mspdbsrv manually (so it has the altered 
env. var.) and then puts it back (to restore the usual no-resource-leak fix).

When you run mspdbsrv, it seems to immediately exit if there's already an 
appropriate version running, so it doesn't matter having multiple jobs trying 
to kick it off.

                
> Configuration UI to disable process tree killer selectively
> -----------------------------------------------------------
>
>                 Key: JENKINS-3105
>                 URL: https://issues.jenkins-ci.org/browse/JENKINS-3105
>             Project: Jenkins
>          Issue Type: Improvement
>          Components: other
>    Affects Versions: current
>         Environment: Platform: Sun, OS: Solaris
>            Reporter: olamy
>            Priority: Trivial
>
> Due to fix https://hudson.dev.java.net/issues/show_bug.cgi?id=2729, I can't
> restart my tomcat instance with using a script which worked fine before 1.283.
> My script called fastRestart.sh is :
> PWD=`pwd`
> cd $PWD
> #BUILD_ID="dontKillMe catalina.sh start"
> #BUILD_ID="dontKillMe ./startup.sh"
> echo $BUILD_ID
> kill -9 `cat ./tomcat.pid` && ./startup.sh
> My hudson job do :
> BUILD_ID=dontKillMe startup.sh && cd
> /local/dotw/tomcat-dev-ota-ah/apache-tomcat-6.0.14/bin && ./fastRestart.sh 
> job console output :
> started
> [workspace] $ /bin/sh -xe
> /local/dotw/tmp/hudson-tmp/hudson3776950102996593394.sh
> BUILD_ID=dontKillMe startup.sh
> + cd /local/dotw/tomcat-dev-ota-ah/apache-tomcat-6.0.14/bin
> + ./fastRestart.sh
> + pwd
> PWD=/local/dotw/tomcat-dev-ota-ah/apache-tomcat-6.0.14/bin
> + cd /local/dotw/tomcat-dev-ota-ah/apache-tomcat-6.0.14/bin
> + echo dontKillMe startup.sh
> dontKillMe startup.sh
> + cat ./tomcat.pid
> + kill -9 9822
> + ./startup.sh
> finished: SUCCESS
> Here the tomcat has been killed and restarted but immediatly stop due to fix 
> for
> 2729.
> Is there any other workaround ?
> IMHO we should have a flag when running a script which "don't kill child
> processes" (to preserve a minimum of backward compatibility and a minimum of
> some jobs/scripts rewriting)
> Thanks
> --
> Olivier

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to