Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Different behavior when interrupting a job, depending on the parallel flow order #3939

Open
kkmikhaylova opened this issue Jun 13, 2021 · 2 comments · May be fixed by #4567
Open

Different behavior when interrupting a job, depending on the parallel flow order #3939

kkmikhaylova opened this issue Jun 13, 2021 · 2 comments · May be fixed by #4567
Labels
has: minimal-example Bug reports that provide a minimal complete reproducible example in: core type: bug

Comments

@kkmikhaylova
Copy link

Bug description
Different behavior when interrupting a job, depending on the parallel flow order.
I am creating a parallel flow and trying to interrupt a job from one of them. Further behavior depends on the order of the flow inside the add() function. In one case, the job is finished immediately, in the other, all steps from another parallel flow are executed.

Flow parallelFlow = new FlowBuilder<SimpleFlow>("parallelFlow")
.split(new SimpleAsyncTaskExecutor())
.add(nonInterruptingFlow, interruptingFlow)
.build();

Environment
Spring Batch: 4.3.1

Steps to reproduce

  1. Create a job with two parallel flows, where the last flow in the list interrupts the job.
  2. Make sure that the job has finished after the interruption.
  3. Change flow order (now the first flow in the list interrupts the job).
  4. Make sure that all the steps of the job have been executed after the interruption.

Expected behavior
Same behavior after interruption.

Minimal Complete Reproducible example
springbatchdemo.zip

@kkmikhaylova kkmikhaylova added status: waiting-for-triage Issues that we did not analyse yet type: bug labels Jun 13, 2021
@fmbenhassine fmbenhassine added has: minimal-example Bug reports that provide a minimal complete reproducible example in: core labels Jun 25, 2021
@fmbenhassine
Copy link
Contributor

Thank you for opening this issue and for providing a minimal sample. Nicely done!

Both jobs complete as expected with a STOPPED status, but indeed the finishedJob proceeds to the nonExecutableStep even though the flow was interrupted in the previous step. That should not be the case. Since those flows are running in parallel, the interruption order should not matter.

@fmbenhassine fmbenhassine removed the status: waiting-for-triage Issues that we did not analyse yet label Jun 14, 2023
@doontagi doontagi linked a pull request Mar 24, 2024 that will close this issue
@doontagi
Copy link

Hi @fmbenhassine, I checked this issue. And I've made a fix PR #4567.
PTAL 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
has: minimal-example Bug reports that provide a minimal complete reproducible example in: core type: bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants