Skip to content

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

Closed
@kkmikhaylova

Description

@kkmikhaylova

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

Activity

fmbenhassine

fmbenhassine commented on Jun 14, 2023

@fmbenhassine
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.

Edit: Attached original sample updated to v5

gh3939.zip

doontagi

doontagi commented on Mar 24, 2024

@doontagi
Contributor

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

added this to the 5.2.1 milestone on Dec 17, 2024
added a commit that references this issue on Dec 17, 2024
aafecb9
added a commit that references this issue on Dec 17, 2024
7678949
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Development

      Participants

      @fmbenhassine@doontagi@kkmikhaylova

      Issue actions

        Different behavior when interrupting a job, depending on the parallel flow order · Issue #3939 · spring-projects/spring-batch