Details
-
Bug
-
Status: Resolved (View Workflow)
-
Major
-
Resolution: Incomplete
-
None
-
Linux Fedora/CentOS/RHEL
Description
Configuration is :
Master Jenkins on Linux (launched with -Dhudson.util.ProcessTreeKiller.disable=true)
Slaves Jenkins agents on Linux, started by java -jar slave.jar
On Slave agents we have Maven 2/3 jobs where bash script is embedded to start/stop/patch Tomcat applications.
To avoid detached (forked) tomcat to be destroyed, we used the BUILD_ID trick on the bash script.
After upgrading from 1.397 to 1.403, we notice that jobs on slaves where killed.
Same jobs started on Master Jenkins didn't have this auto-kill problem.
Free style jobs on Master or Slave didn't see the problem, so the BUILD_ID still worked.
To restore the correct behaviour, we add -Dhudson.util.ProcessTreeKiller.disable=true on start command line ie :
java -jar slave.jar -Dhudson.util.ProcessTreeKiller.disable=true
I suspect a problem in env vars propagation between Maven 2 or 3 and Jenkins somewhere between 1.397 and 1.403 since now the BUILD_ID env var set by the bash script called by Maven isn't seen by Hudson.
For further reference: I had exactly the same issue when running jobs on a Windows XP x64 slave. I had to unset HUDSON_COOKIE, HUDSON_SERVER_COOKIE, JENKINS_COOKIE or JENKINS_SERVER_COOKIE (I unset all of them, didn't check which one actually does the trick – JENKINS_COOKIE did not appear to be set though). We are running version 1.559, and the slave starts through JNLP (because we need it to access the GUI).
I found the solution based on this StackOverflow question referencing a comment on the Spawning process from build wiki page.
Notice that Jenkins continues to say that the process leaked file descriptors but at least it does not kill my background process any more (HSQLDB).