jenkinsci / jenkinsci/workflow-durable-task-step-plugin

[JENKINS-57866] ShellStepTest.abort flake on Windows

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

Description

On CI I see a lot of flakes on Windows:

java.lang.AssertionError: org.jenkinsci.plugins.workflow.steps.durable_task.ShellStepTest$1@​52070d1b

at org.jenkinsci.plugins.workflow.steps.durable_task.ShellStepTest.ensureForWhile(ShellStepTest.java:682)
at org.jenkinsci.plugins.workflow.steps.durable_task.ShellStepTest.abort(ShellStepTest.java:192)

The test is not written terribly well, but basically this means that the batch script running ping every second in a loop was sent a termination signal yet continued running for at least five seconds after the interrupt. Did the signal get lost? Sent to the wrong subprocess without breaking the loop? Was it going to get handled but the system was just too heavily loaded? Could probably improve test to:


  • Use a single process for the batch script, like ping -n 99999 127.0.0.1 >tmp.

  • Wait indefinitely (up to global test timeout) for the file to not have been touched in the last few seconds.

---
Originally reported by jglick, imported from: ShellStepTest.abort flake on Windows


  • status: Open
  • priority: Minor
  • component(s): workflow-durable-task-step-plugin
  • label(s): flake
  • resolution: Unresolved
  • votes: 0
  • watchers: 1
  • imported: 20251212-090250

Raw content of original issue

On CI I see a lot of flakes on Windows:


java.lang.AssertionError: org.jenkinsci.plugins.workflow.steps.durable_task.ShellStepTest$1@52070d1b

at org.jenkinsci.plugins.workflow.steps.durable_task.ShellStepTest.ensureForWhile(ShellStepTest.java:682)
at org.jenkinsci.plugins.workflow.steps.durable_task.ShellStepTest.abort(ShellStepTest.java:192)

The test is not written terribly well, but basically this means that the batch script running ping every second in a loop was sent a termination signal yet continued running for at least five seconds after the interrupt. Did the signal get lost? Sent to the wrong subprocess without breaking the loop? Was it going to get handled but the system was just too heavily loaded? Could probably improve test to:


  • Use a single process for the batch script, like ping -n 99999 127.0.0.1 >tmp.

  • Wait indefinitely (up to global test timeout) for the file to not have been touched in the last few seconds.


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.