jenkinsci / jenkinsci/workflow-durable-task-step-plugin
[JENKINS-57866] ShellStepTest.abort flake on Windows
- 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
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
Assessment
This issue has not been assessed yet.