Status: Open (View Workflow)
Currently, On Windows Jenkins calls ProcessKillers for the root process only. On Linux machines the extension point is being called for the entire process tree. The implementation should be synchronized for all platforms.
- Built-in killRecursive() of WinProc should be replaced by a recursive implementation from UnixProcess (depends on JENKINS-20289)
- depends on
JENKINS-20289 [winp library] - ProcessTermination: Add support of children processes retrieval for Windows
- is blocking
JENKINS-13615 ProcessTreeKiller doesn't work for cygwin sub-processes
- is related to
JENKINS-48485 Aborting a Job running on Windows terminates the process immediately with no chance to run build clean up code, thus leaves build related lock files hanging at slave.
JENKINS-9104 Visual studio builds started by Jenkins fail with "Fatal error C1090" because mspdbsrv.exe gets killed
Code changed in jenkins
User: Oleg Nenashev
Windows::killRecursively() invokes process killers after completion.
Signed-off-by: Oleg Nenashev <email@example.com>
Previous fix invokes ProcessKiller only for top-level process.
Built-in killRecursive() of WinProc should be replaced by manual implementation from UnixProcess
JENKINS-9104 seems to indicate that processes are getting killed. What is this issue about, specifically?
Better late than never...
I've updated the issue title and description.
Hopefully, I'll be able to spend some time on the winp library to implement a native getChildPids() API method.
JENKINS-9104 mean that child processes of launched processes do get killed on Windows?
JENKINS-9104 resolves the termination issue in general cases, but this issue is not related to the process termination. It means the correct handling of process termination events.
ProcessKiller is actually an event handler for the process termination.
It's being used to call some additional procedures (e.g. correct Cygwin processes termination in
JENKINS-13615 ). Currently there's no option to fire event handlers for the each process in the tree.
It is not possible to implement Cygwin Process Killer