Github user GJL commented on a diff in the pull request:
https://github.com/apache/flink/pull/5775#discussion_r177544274
--- Diff:
flink-runtime/src/test/java/org/apache/flink/runtime/executiongraph/ExecutionGraphSchedulingTest.java
---
@@ -465,6 +464,58 @@ public void
testSchedulingOperationCancellationWhenCancel() throws Exception {
assertThat(executionGraph.getTerminationFuture().get(),
is(JobStatus.CANCELED));
}
+ @Nonnull
+ private TestingLogicalSlot createTestingSlot(@Nullable
CompletableFuture<?> releaseFuture) {
+ return new TestingLogicalSlot(
+ new LocalTaskManagerLocation(),
+ new SimpleAckingTaskManagerGateway(),
+ 0,
+ new AllocationID(),
+ new SlotRequestId(),
+ new SlotSharingGroupId(),
+ releaseFuture);
+ }
+
+ /**
+ * Tests that a partially completed eager scheduling operation fails if
an
+ * completed slot is released. See FLINK-9099.
+ */
+ @Test
+ public void testSlotReleasingFailsSchedulingOperation() throws
Exception {
+ final int parallelism = 2;
+
+ final JobVertex jobVertex = new JobVertex("Testing job vertex");
+ jobVertex.setInvokableClass(NoOpInvokable.class);
+ jobVertex.setParallelism(parallelism);
+ final JobGraph jobGraph = new JobGraph(jobVertex);
+ jobGraph.setAllowQueuedScheduling(true);
+ jobGraph.setScheduleMode(ScheduleMode.EAGER);
+
+ final ProgrammedSlotProvider slotProvider = new
ProgrammedSlotProvider(2);
--- End diff --
Replace `2` with `parallelism`?
---