jenkinsci / jenkinsci/workflow-basic-steps-plugin

[JENKINS-71948] timeout step kills other jobs in same directory

Open
#529 2 comments 0 reactions 0 assignees View on GitHub
component:workflow-basic-steps-plugin imported-jira-issue priority:major resolution:unresolved
Dominant language
Java
Stars
73
Forks
129
PR merge metrics
No merged PRs in 30d

Description

The timeout step kills not only processes started in its body but as well processes started by other jobs when these processes run in the same directory.

We initially had the issue executing maven tests but it can be easily reproduced with a small powershell script for instance.



  • Job A:

    timeout(10) {
    
    node() {
    echo "Workspace $env.WORKSPACE"

    timeout(1) {
    powershell '''"Start"
    $counter = 0
    while ($true) {
    $counter++
    "Sleeping ($counter)"
    Start-Sleep -Seconds 5
    }'''
    }
    }
    }


  • Job B:

    timeout(10) {
    
    node() {
    def sameDirThanOtherJob = '' // to define

    dir(sameDirThanOtherJob) {
    timeout(time: 10, unit: 'SECONDS') {
    powershell '''"Start"
    $counter = 0
    while ($true) {
    $counter++
    "Sleeping ($counter)"
    Start-Sleep -Seconds 5
    }'''
    }
    }
    }
    }

Output:



  • Job A

    ...
    
    [2023-08-31T10:20:38.424Z] [Pipeline] timeout
    [2023-08-31T10:20:38.424Z] Timeout set to expire in 1 Minute 0 Sekunden
    [2023-08-31T10:20:38.424Z] [Pipeline] {
    [2023-08-31T10:20:38.424Z] [Pipeline] powershell
    [2023-08-31T10:20:41.002Z] Start
    [2023-08-31T10:20:41.002Z] Sleeping (1)
    [2023-08-31T10:20:46.303Z] Sleeping (2)
    [2023-08-31T10:20:51.596Z] Sleeping (3)
    [2023-08-31T10:20:56.865Z] Sleeping (4)
    [2023-08-31T10:20:58.256Z] [Pipeline] }
    [2023-08-31T10:20:58.256Z] [Pipeline] // timeout
    [2023-08-31T10:20:58.256Z] [Pipeline] }
    [2023-08-31T10:20:58.256Z] [Pipeline] // node
    [2023-08-31T10:20:58.256Z] [Pipeline] }
    [2023-08-31T10:20:58.272Z] [Pipeline] // timeout
    [2023-08-31T10:20:58.272Z] [Pipeline] End of Pipeline
    [2023-08-31T10:20:58.272Z] ERROR: script returned exit code -1
    [2023-08-31T10:20:58.287Z] Finished: FAILURE


  • Job B

    ...
    
    [2023-08-31T10:20:47.616Z] [Pipeline] {
    [2023-08-31T10:20:47.663Z] [Pipeline] timeout
    [2023-08-31T10:20:47.663Z] Timeout set to expire in 10 Sekunden
    [2023-08-31T10:20:47.678Z] [Pipeline] {
    [2023-08-31T10:20:47.710Z] [Pipeline] powershell
    [2023-08-31T10:20:49.132Z] Start
    [2023-08-31T10:20:49.132Z] Sleeping (1)
    [2023-08-31T10:20:54.402Z] Sleeping (2)
    [2023-08-31T10:20:57.678Z] Cancelling nested steps due to timeout
    [2023-08-31T10:20:57.678Z] Sending interrupt signal to process
    [2023-08-31T10:20:58.600Z] script returned exit code -1
    [2023-08-31T10:20:58.615Z] [Pipeline] }
    [2023-08-31T10:20:58.647Z] [Pipeline] // timeout
    [2023-08-31T10:20:58.662Z] [Pipeline] }
    [2023-08-31T10:20:58.694Z] [Pipeline] // dir
    [2023-08-31T10:20:58.725Z] [Pipeline] }
    [2023-08-31T10:20:58.772Z] [Pipeline] // node
    [2023-08-31T10:20:58.787Z] [Pipeline] }
    [2023-08-31T10:20:58.819Z] [Pipeline] // timeout
    [2023-08-31T10:20:58.850Z] [Pipeline] End of Pipeline
    [2023-08-31T10:20:58.865Z] Timeout has been exceeded
    [2023-08-31T10:20:58.865Z] org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 63ed9175-4688-47c7-bb7a-518210b28d0b
    [2023-08-31T10:20:58.865Z] Finished: ABORTED

Job B is normally cancelled by the timeout. Job A is interrupted as well.

We observe the problem since one or two weeks.

---
Originally reported by mguillem, imported from: timeout step kills other jobs in same directory


  • status: Open
  • priority: Major
  • component(s): workflow-basic-steps-plugin
  • resolution: Unresolved
  • votes: 0
  • watchers: 2
  • imported: 20251215-220547

Raw content of original issue

The timeout step kills not only processes started in its body but as well processes started by other jobs when these processes run in the same directory.

We initially had the issue executing maven tests but it can be easily reproduced with a small powershell script for instance.



  • Job A:

    timeout(10) {
    
    node() {
    echo "Workspace $env.WORKSPACE"

    timeout(1) {
    powershell '''"Start"
    $counter = 0
    while ($true) {
    $counter++
    "Sleeping ($counter)"
    Start-Sleep -Seconds 5
    }'''
    }
    }
    }



  • Job B:

    timeout(10) {
    
    node() {
    def sameDirThanOtherJob = '' // to define

    dir(sameDirThanOtherJob) {
    timeout(time: 10, unit: 'SECONDS') {
    powershell '''"Start"
    $counter = 0
    while ($true) {
    $counter++
    "Sleeping ($counter)"
    Start-Sleep -Seconds 5
    }'''
    }
    }
    }
    }


Output:



  • Job A

    ...
    
    [2023-08-31T10:20:38.424Z] [Pipeline] timeout
    [2023-08-31T10:20:38.424Z] Timeout set to expire in 1 Minute 0 Sekunden
    [2023-08-31T10:20:38.424Z] [Pipeline] {
    [2023-08-31T10:20:38.424Z] [Pipeline] powershell
    [2023-08-31T10:20:41.002Z] Start
    [2023-08-31T10:20:41.002Z] Sleeping (1)
    [2023-08-31T10:20:46.303Z] Sleeping (2)
    [2023-08-31T10:20:51.596Z] Sleeping (3)
    [2023-08-31T10:20:56.865Z] Sleeping (4)
    [2023-08-31T10:20:58.256Z] [Pipeline] }
    [2023-08-31T10:20:58.256Z] [Pipeline] // timeout
    [2023-08-31T10:20:58.256Z] [Pipeline] }
    [2023-08-31T10:20:58.256Z] [Pipeline] // node
    [2023-08-31T10:20:58.256Z] [Pipeline] }
    [2023-08-31T10:20:58.272Z] [Pipeline] // timeout
    [2023-08-31T10:20:58.272Z] [Pipeline] End of Pipeline
    [2023-08-31T10:20:58.272Z] ERROR: script returned exit code -1
    [2023-08-31T10:20:58.287Z] Finished: FAILURE



  • Job B

    ...
    
    [2023-08-31T10:20:47.616Z] [Pipeline] {
    [2023-08-31T10:20:47.663Z] [Pipeline] timeout
    [2023-08-31T10:20:47.663Z] Timeout set to expire in 10 Sekunden
    [2023-08-31T10:20:47.678Z] [Pipeline] {
    [2023-08-31T10:20:47.710Z] [Pipeline] powershell
    [2023-08-31T10:20:49.132Z] Start
    [2023-08-31T10:20:49.132Z] Sleeping (1)
    [2023-08-31T10:20:54.402Z] Sleeping (2)
    [2023-08-31T10:20:57.678Z] Cancelling nested steps due to timeout
    [2023-08-31T10:20:57.678Z] Sending interrupt signal to process
    [2023-08-31T10:20:58.600Z] script returned exit code -1
    [2023-08-31T10:20:58.615Z] [Pipeline] }
    [2023-08-31T10:20:58.647Z] [Pipeline] // timeout
    [2023-08-31T10:20:58.662Z] [Pipeline] }
    [2023-08-31T10:20:58.694Z] [Pipeline] // dir
    [2023-08-31T10:20:58.725Z] [Pipeline] }
    [2023-08-31T10:20:58.772Z] [Pipeline] // node
    [2023-08-31T10:20:58.787Z] [Pipeline] }
    [2023-08-31T10:20:58.819Z] [Pipeline] // timeout
    [2023-08-31T10:20:58.850Z] [Pipeline] End of Pipeline
    [2023-08-31T10:20:58.865Z] Timeout has been exceeded
    [2023-08-31T10:20:58.865Z] org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: 63ed9175-4688-47c7-bb7a-518210b28d0b
    [2023-08-31T10:20:58.865Z] Finished: ABORTED


Job B is normally cancelled by the timeout. Job A is interrupted as well.

We observe the problem since one or two weeks.

environment

```
Jenkins 2.414.1 on windows

Pipeline: Basic Steps Version 1042.ve7b_140c4a_e0c
```

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.