jenkinsci / jenkinsci/durable-task-plugin

[JENKINS-75653] durable-task-lib binary wrapper not correctly spawning independent processes on windows agents

Open
#516 2 comments 0 reactions 0 assignees View on GitHub
component:durable-task-plugin imported-jira-issue priority:minor resolution:unresolved
Dominant language
Java
Stars
30
Forks
101
PR merge metrics
No merged PRs in 30d

Description

Should actually be for `durable-task-lib` (https://github.com/jenkinsci/lib-durable-task) but that did not come up as a possible component

Stand up a controller and create a permanent windows agent. I used the following system properties:

JENKINS_OPTIONS="-Dorg.jenkinsci.plugins.durabletask.WindowsBatchScript.USE_BINARY_WRAPPER=true -Dorg.jenkinsci.plugins.durabletask.PowershellScript.USE_BINARY_WRAPPER=true -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.USE_BINARY_WRAPPER=true -Dorg.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep.USE_WATCHING=true -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=30"

Create a job like this:


pipeline {
agent {
label 'seco'
}

stages {
stage('Long Running Process') {
steps {
echo "Starting long-running process on Windows node"

// Use a single command with ping to create a long-running process
// Ping 127.0.0.1 1800 times with 1 second interval = 30 minutes
//bat 'ping 127.0.0.1 -n 1800 > null'
bat 'ping 127.0.0.1 -n 1800'
//bat 'c:\test.bat'

echo "After long-running process"
}
}
}
}


now execute this job. After it starts to run, kill the agent process in windows. Observe that the wrapper and its child ping process both exit immediately.

---
Originally reported by mikecirioli, imported from: durable-task-lib binary wrapper not correctly spawning independent processes on windows agents


  • status: Open
  • priority: Minor
  • component(s): durable-task-plugin
  • resolution: Unresolved
  • votes: 0
  • watchers: 1
  • imported: 2025-12-09

Raw content of original issue

Should actually be for `durable-task-lib` (https://github.com/jenkinsci/lib-durable-task) but that did not come up as a possible component

Stand up a controller and create a permanent windows agent. I used the following system properties:


JENKINS_OPTIONS="-Dorg.jenkinsci.plugins.durabletask.WindowsBatchScript.USE_BINARY_WRAPPER=true -Dorg.jenkinsci.plugins.durabletask.PowershellScript.USE_BINARY_WRAPPER=true -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.USE_BINARY_WRAPPER=true -Dorg.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep.USE_WATCHING=true -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=30"


Create a job like this:


pipeline {

agent {
label 'seco'
}

stages {
stage('Long Running Process') {
steps {
echo "Starting long-running process on Windows node"

// Use a single command with ping to create a long-running process
// Ping 127.0.0.1 1800 times with 1 second interval = 30 minutes
//bat 'ping 127.0.0.1 -n 1800 > null'
bat 'ping 127.0.0.1 -n 1800'
//bat 'c:\test.bat'

echo "After long-running process"
}
}
}
}



now execute this job. After it starts to run, kill the agent process in windows. Observe that the wrapper and its child ping process both exit immediately.

  • environment: using latest jenkins and a windows VM to host the permanent agent. OpenSSH installed on VM and agent connection is via SSH

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.