1) Choose a Windows7/8/10 node and mark it offline in its configuration page
2) then mark it online
3) Create a job attached to this node with the Windows command: notepad.exe
4) Start your job, check that Notepad is started (dont close).
5) Cancel the build of the job and see that Notepad is still open.
On the windows node, if you manually restart the agent, this fixes the "kill behavior".
the problem also happens for an accidental deconnection/reconnection (that how we notificed that, because randomly it seems that the ProcessTreeKiller did not work anymore and it seemed that it happened after networks issues between the server and the node)
- is related to
-
JENKINS-24319 Windows slave dying during build - unsatisfied link error
-
- Reopened
-
Error reproduced :
Slave agent is launch by a script containing such command : javaws http://localhost:8080/jenkins/computer/NODE/slave-agent.jnlp
Job consists in a Windows Batch command : notepad.exe.
Analysis :
When disconnecting node using the jenkins UI, the slave-agent is set disconnected and then it restarts.
The submitting a new job and cancelling it with the UI causes an Error in Class hudson.util.ProcessTree method "public static ProcessTree get()" @line:355
java.lang.UnsatisfiedLinkError: Native Library C:\Users\<user_name>\.jenkins\cache\jars\4A\winp.x64.22D9AB310A3FA2D96B6E03A836A47724.dll already loaded in another classloader
When this Error is catched, ProcessTreeKiller enable static attribute is set to false, then DEFAULT ProcessTree imlementation is used, where killAll is no-op. So only ProcessRuntime running the cmd command is destroyed and only cmd process is killed (which doesn't kill the subprocesses)