Search in sources :

Example 11 with ResultPartitionManager

use of org.apache.flink.runtime.io.network.partition.ResultPartitionManager in project flink by apache.

the class LocalInputChannelTest method testPartitionNotFoundExceptionWhileRequestingPartition.

/**
 * Tests that {@link LocalInputChannel#requestSubpartition()} throws {@link
 * PartitionNotFoundException} if the result partition was not registered in {@link
 * ResultPartitionManager} and no backoff.
 */
@Test
public void testPartitionNotFoundExceptionWhileRequestingPartition() throws Exception {
    final SingleInputGate inputGate = createSingleInputGate(1);
    final LocalInputChannel localChannel = createLocalInputChannel(inputGate, new ResultPartitionManager());
    try {
        localChannel.requestSubpartition();
        fail("Should throw a PartitionNotFoundException.");
    } catch (PartitionNotFoundException notFound) {
        assertThat(localChannel.getPartitionId(), Matchers.is(notFound.getPartitionId()));
    }
}
Also used : PartitionNotFoundException(org.apache.flink.runtime.io.network.partition.PartitionNotFoundException) InputChannelTestUtils.createLocalInputChannel(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createLocalInputChannel) ResultPartitionManager(org.apache.flink.runtime.io.network.partition.ResultPartitionManager) TestingResultPartitionManager(org.apache.flink.runtime.io.network.partition.consumer.SingleInputGateTest.TestingResultPartitionManager) InputChannelTestUtils.createSingleInputGate(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createSingleInputGate) Test(org.junit.Test)

Example 12 with ResultPartitionManager

use of org.apache.flink.runtime.io.network.partition.ResultPartitionManager in project flink by apache.

the class LocalInputChannelTest method testChannelErrorWhileRetriggeringRequest.

/**
 * Tests that {@link LocalInputChannel#retriggerSubpartitionRequest(Timer)} would throw {@link
 * PartitionNotFoundException} which is set onto the input channel then.
 */
@Test
public void testChannelErrorWhileRetriggeringRequest() {
    final SingleInputGate inputGate = createSingleInputGate(1);
    final LocalInputChannel localChannel = createLocalInputChannel(inputGate, new ResultPartitionManager());
    final Timer timer = new Timer(true) {

        @Override
        public void schedule(TimerTask task, long delay) {
            task.run();
            try {
                localChannel.checkError();
                fail("Should throw a PartitionNotFoundException.");
            } catch (PartitionNotFoundException notFound) {
                assertThat(localChannel.partitionId, Matchers.is(notFound.getPartitionId()));
            } catch (IOException ex) {
                fail("Should throw a PartitionNotFoundException.");
            }
        }
    };
    try {
        localChannel.retriggerSubpartitionRequest(timer);
    } finally {
        timer.cancel();
    }
}
Also used : PartitionNotFoundException(org.apache.flink.runtime.io.network.partition.PartitionNotFoundException) Timer(java.util.Timer) TimerTask(java.util.TimerTask) IOException(java.io.IOException) InputChannelTestUtils.createLocalInputChannel(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createLocalInputChannel) ResultPartitionManager(org.apache.flink.runtime.io.network.partition.ResultPartitionManager) TestingResultPartitionManager(org.apache.flink.runtime.io.network.partition.consumer.SingleInputGateTest.TestingResultPartitionManager) InputChannelTestUtils.createSingleInputGate(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createSingleInputGate) Test(org.junit.Test)

Example 13 with ResultPartitionManager

use of org.apache.flink.runtime.io.network.partition.ResultPartitionManager in project flink by apache.

the class LocalInputChannelTest method testPartitionRequestExponentialBackoff.

@Test
public void testPartitionRequestExponentialBackoff() throws Exception {
    // Config
    int initialBackoff = 500;
    int maxBackoff = 3000;
    // Start with initial backoff, then keep doubling, and cap at max.
    int[] expectedDelays = { initialBackoff, 1000, 2000, maxBackoff };
    // Setup
    SingleInputGate inputGate = mock(SingleInputGate.class);
    BufferProvider bufferProvider = mock(BufferProvider.class);
    when(inputGate.getBufferProvider()).thenReturn(bufferProvider);
    ResultPartitionManager partitionManager = mock(ResultPartitionManager.class);
    LocalInputChannel ch = createLocalInputChannel(inputGate, partitionManager, initialBackoff, maxBackoff);
    when(partitionManager.createSubpartitionView(eq(ch.partitionId), eq(0), any(BufferAvailabilityListener.class))).thenThrow(new PartitionNotFoundException(ch.partitionId));
    Timer timer = mock(Timer.class);
    doAnswer((Answer<Void>) invocation -> {
        ((TimerTask) invocation.getArguments()[0]).run();
        return null;
    }).when(timer).schedule(any(TimerTask.class), anyLong());
    // Initial request
    ch.requestSubpartition();
    verify(partitionManager).createSubpartitionView(eq(ch.partitionId), eq(0), any(BufferAvailabilityListener.class));
    // Request subpartition and verify that the actual requests are delayed.
    for (long expected : expectedDelays) {
        ch.retriggerSubpartitionRequest(timer);
        verify(timer).schedule(any(TimerTask.class), eq(expected));
    }
    // Exception after backoff is greater than the maximum backoff.
    try {
        ch.retriggerSubpartitionRequest(timer);
        ch.getNextBuffer();
        fail("Did not throw expected exception.");
    } catch (Exception expected) {
    }
}
Also used : ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) Timer(java.util.Timer) Lists(org.apache.flink.shaded.guava30.com.google.common.collect.Lists) ResultPartition(org.apache.flink.runtime.io.network.partition.ResultPartition) ResultPartitionID(org.apache.flink.runtime.io.network.partition.ResultPartitionID) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) CheckpointStorageLocationReference.getDefault(org.apache.flink.runtime.state.CheckpointStorageLocationReference.getDefault) Mockito.doAnswer(org.mockito.Mockito.doAnswer) ResultSubpartition(org.apache.flink.runtime.io.network.partition.ResultSubpartition) Assert.fail(org.junit.Assert.fail) TimerTask(java.util.TimerTask) TaskEventDispatcher(org.apache.flink.runtime.io.network.TaskEventDispatcher) CheckpointType(org.apache.flink.runtime.checkpoint.CheckpointType) CancelTaskException(org.apache.flink.runtime.execution.CancelTaskException) EventSerializer(org.apache.flink.runtime.io.network.api.serialization.EventSerializer) ResultPartitionBuilder(org.apache.flink.runtime.io.network.partition.ResultPartitionBuilder) InputChannelTestUtils(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils) CheckpointOptions(org.apache.flink.runtime.checkpoint.CheckpointOptions) BufferWritingResultPartition(org.apache.flink.runtime.io.network.partition.BufferWritingResultPartition) PartitionNotFoundException(org.apache.flink.runtime.io.network.partition.PartitionNotFoundException) Buffer(org.apache.flink.runtime.io.network.buffer.Buffer) Executors(java.util.concurrent.Executors) PipelinedResultPartition(org.apache.flink.runtime.io.network.partition.PipelinedResultPartition) List(java.util.List) RecordingChannelStateWriter(org.apache.flink.runtime.checkpoint.channel.RecordingChannelStateWriter) CheckpointBarrier(org.apache.flink.runtime.io.network.api.CheckpointBarrier) Preconditions.checkArgument(org.apache.flink.util.Preconditions.checkArgument) Assert.assertFalse(org.junit.Assert.assertFalse) Optional(java.util.Optional) ResultPartitionManager(org.apache.flink.runtime.io.network.partition.ResultPartitionManager) ResultSubpartitionView(org.apache.flink.runtime.io.network.partition.ResultSubpartitionView) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) IntermediateResultPartitionID(org.apache.flink.runtime.jobgraph.IntermediateResultPartitionID) TestBufferFactory(org.apache.flink.runtime.io.network.util.TestBufferFactory) ArgumentMatchers.anyLong(org.mockito.ArgumentMatchers.anyLong) BufferConsumer(org.apache.flink.runtime.io.network.buffer.BufferConsumer) InputChannelTestUtils.createSingleInputGate(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createSingleInputGate) ResultPartitionType(org.apache.flink.runtime.io.network.partition.ResultPartitionType) Callable(java.util.concurrent.Callable) CompletableFuture(java.util.concurrent.CompletableFuture) BufferProvider(org.apache.flink.runtime.io.network.buffer.BufferProvider) NetworkBufferPool(org.apache.flink.runtime.io.network.buffer.NetworkBufferPool) TestingResultPartitionManager(org.apache.flink.runtime.io.network.partition.consumer.SingleInputGateTest.TestingResultPartitionManager) Answer(org.mockito.stubbing.Answer) FutureUtils(org.apache.flink.util.concurrent.FutureUtils) BufferAvailabilityListener(org.apache.flink.runtime.io.network.partition.BufferAvailabilityListener) InputChannelTestUtils.createLocalInputChannel(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createLocalInputChannel) Assert.assertArrayEquals(org.junit.Assert.assertArrayEquals) InputGateFairnessTest.setupInputGate(org.apache.flink.runtime.io.network.partition.InputGateFairnessTest.setupInputGate) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) CheckedSupplier(org.apache.flink.util.function.CheckedSupplier) ArgumentMatchers.anyInt(org.mockito.ArgumentMatchers.anyInt) TestProducerSource(org.apache.flink.runtime.io.network.util.TestProducerSource) ExecutorService(java.util.concurrent.ExecutorService) CheckpointStorageLocationReference(org.apache.flink.runtime.state.CheckpointStorageLocationReference) Assert.assertNotNull(org.junit.Assert.assertNotNull) BufferPool(org.apache.flink.runtime.io.network.buffer.BufferPool) Matchers(org.hamcrest.Matchers) Assert.assertTrue(org.junit.Assert.assertTrue) TestPartitionProducer(org.apache.flink.runtime.io.network.util.TestPartitionProducer) Test(org.junit.Test) IOException(java.io.IOException) Mockito.when(org.mockito.Mockito.when) BufferBuilderTestUtils.createFilledFinishedBufferConsumer(org.apache.flink.runtime.io.network.buffer.BufferBuilderTestUtils.createFilledFinishedBufferConsumer) Mockito.verify(org.mockito.Mockito.verify) NoOpFileChannelManager(org.apache.flink.runtime.io.disk.NoOpFileChannelManager) PartitionTestUtils(org.apache.flink.runtime.io.network.partition.PartitionTestUtils) Collections(java.util.Collections) Assert.assertEquals(org.junit.Assert.assertEquals) ResultPartitionManager(org.apache.flink.runtime.io.network.partition.ResultPartitionManager) TestingResultPartitionManager(org.apache.flink.runtime.io.network.partition.consumer.SingleInputGateTest.TestingResultPartitionManager) InputChannelTestUtils.createSingleInputGate(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createSingleInputGate) CancelTaskException(org.apache.flink.runtime.execution.CancelTaskException) PartitionNotFoundException(org.apache.flink.runtime.io.network.partition.PartitionNotFoundException) IOException(java.io.IOException) PartitionNotFoundException(org.apache.flink.runtime.io.network.partition.PartitionNotFoundException) Timer(java.util.Timer) TimerTask(java.util.TimerTask) BufferAvailabilityListener(org.apache.flink.runtime.io.network.partition.BufferAvailabilityListener) BufferProvider(org.apache.flink.runtime.io.network.buffer.BufferProvider) InputChannelTestUtils.createLocalInputChannel(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createLocalInputChannel) Test(org.junit.Test)

Example 14 with ResultPartitionManager

use of org.apache.flink.runtime.io.network.partition.ResultPartitionManager in project flink by apache.

the class LocalInputChannelTest method testProducerFailedException.

@Test(expected = CancelTaskException.class)
public void testProducerFailedException() throws Exception {
    ResultSubpartitionView view = mock(ResultSubpartitionView.class);
    when(view.isReleased()).thenReturn(true);
    when(view.getFailureCause()).thenReturn(new Exception("Expected test exception"));
    ResultPartitionManager partitionManager = mock(ResultPartitionManager.class);
    when(partitionManager.createSubpartitionView(any(ResultPartitionID.class), anyInt(), any(BufferAvailabilityListener.class))).thenReturn(view);
    SingleInputGate inputGate = mock(SingleInputGate.class);
    BufferProvider bufferProvider = mock(BufferProvider.class);
    when(inputGate.getBufferProvider()).thenReturn(bufferProvider);
    LocalInputChannel ch = createLocalInputChannel(inputGate, partitionManager);
    ch.requestSubpartition();
    // Should throw an instance of CancelTaskException.
    ch.getNextBuffer();
}
Also used : ResultSubpartitionView(org.apache.flink.runtime.io.network.partition.ResultSubpartitionView) BufferAvailabilityListener(org.apache.flink.runtime.io.network.partition.BufferAvailabilityListener) BufferProvider(org.apache.flink.runtime.io.network.buffer.BufferProvider) ResultPartitionID(org.apache.flink.runtime.io.network.partition.ResultPartitionID) IntermediateResultPartitionID(org.apache.flink.runtime.jobgraph.IntermediateResultPartitionID) ResultPartitionManager(org.apache.flink.runtime.io.network.partition.ResultPartitionManager) TestingResultPartitionManager(org.apache.flink.runtime.io.network.partition.consumer.SingleInputGateTest.TestingResultPartitionManager) InputChannelTestUtils.createLocalInputChannel(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createLocalInputChannel) InputChannelTestUtils.createSingleInputGate(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createSingleInputGate) CancelTaskException(org.apache.flink.runtime.execution.CancelTaskException) PartitionNotFoundException(org.apache.flink.runtime.io.network.partition.PartitionNotFoundException) IOException(java.io.IOException) Test(org.junit.Test)

Example 15 with ResultPartitionManager

use of org.apache.flink.runtime.io.network.partition.ResultPartitionManager in project flink by apache.

the class LocalInputChannelTest method testConcurrentReleaseAndRetriggerPartitionRequest.

/**
 * Verifies that concurrent release via the SingleInputGate and re-triggering of a partition
 * request works smoothly.
 *
 * <ul>
 *   <li>SingleInputGate acquires its request lock and tries to release all registered channels.
 *       When releasing a channel, it needs to acquire the channel's shared request-release
 *       lock.
 *   <li>If a LocalInputChannel concurrently retriggers a partition request via a Timer Thread
 *       it acquires the channel's request-release lock and calls the retrigger callback on the
 *       SingleInputGate, which again tries to acquire the gate's request lock.
 * </ul>
 *
 * <p>For certain timings this obviously leads to a deadlock. This test reliably reproduced such
 * a timing (reported in FLINK-5228). This test is pretty much testing the buggy implementation
 * and has not much more general value. If it becomes obsolete at some point (future greatness
 * ;)), feel free to remove it.
 *
 * <p>The fix in the end was to to not acquire the channels lock when releasing it and/or not
 * doing any input gate callbacks while holding the channel's lock. I decided to do both.
 */
@Test
public void testConcurrentReleaseAndRetriggerPartitionRequest() throws Exception {
    final SingleInputGate gate = createSingleInputGate(1);
    ResultPartitionManager partitionManager = mock(ResultPartitionManager.class);
    when(partitionManager.createSubpartitionView(any(ResultPartitionID.class), anyInt(), any(BufferAvailabilityListener.class))).thenAnswer((Answer<ResultSubpartitionView>) invocationOnMock -> {
        Thread.sleep(100);
        throw new PartitionNotFoundException(new ResultPartitionID());
    });
    final LocalInputChannel channel = createLocalInputChannel(gate, partitionManager, 1, 1);
    Thread releaser = new Thread(() -> {
        try {
            gate.close();
        } catch (IOException ignored) {
        }
    });
    Thread requester = new Thread(() -> {
        try {
            channel.requestSubpartition();
        } catch (IOException ignored) {
        }
    });
    requester.start();
    releaser.start();
    releaser.join();
    requester.join();
}
Also used : ArgumentMatchers.eq(org.mockito.ArgumentMatchers.eq) Timer(java.util.Timer) Lists(org.apache.flink.shaded.guava30.com.google.common.collect.Lists) ResultPartition(org.apache.flink.runtime.io.network.partition.ResultPartition) ResultPartitionID(org.apache.flink.runtime.io.network.partition.ResultPartitionID) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) CheckpointStorageLocationReference.getDefault(org.apache.flink.runtime.state.CheckpointStorageLocationReference.getDefault) Mockito.doAnswer(org.mockito.Mockito.doAnswer) ResultSubpartition(org.apache.flink.runtime.io.network.partition.ResultSubpartition) Assert.fail(org.junit.Assert.fail) TimerTask(java.util.TimerTask) TaskEventDispatcher(org.apache.flink.runtime.io.network.TaskEventDispatcher) CheckpointType(org.apache.flink.runtime.checkpoint.CheckpointType) CancelTaskException(org.apache.flink.runtime.execution.CancelTaskException) EventSerializer(org.apache.flink.runtime.io.network.api.serialization.EventSerializer) ResultPartitionBuilder(org.apache.flink.runtime.io.network.partition.ResultPartitionBuilder) InputChannelTestUtils(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils) CheckpointOptions(org.apache.flink.runtime.checkpoint.CheckpointOptions) BufferWritingResultPartition(org.apache.flink.runtime.io.network.partition.BufferWritingResultPartition) PartitionNotFoundException(org.apache.flink.runtime.io.network.partition.PartitionNotFoundException) Buffer(org.apache.flink.runtime.io.network.buffer.Buffer) Executors(java.util.concurrent.Executors) PipelinedResultPartition(org.apache.flink.runtime.io.network.partition.PipelinedResultPartition) List(java.util.List) RecordingChannelStateWriter(org.apache.flink.runtime.checkpoint.channel.RecordingChannelStateWriter) CheckpointBarrier(org.apache.flink.runtime.io.network.api.CheckpointBarrier) Preconditions.checkArgument(org.apache.flink.util.Preconditions.checkArgument) Assert.assertFalse(org.junit.Assert.assertFalse) Optional(java.util.Optional) ResultPartitionManager(org.apache.flink.runtime.io.network.partition.ResultPartitionManager) ResultSubpartitionView(org.apache.flink.runtime.io.network.partition.ResultSubpartitionView) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) IntermediateResultPartitionID(org.apache.flink.runtime.jobgraph.IntermediateResultPartitionID) TestBufferFactory(org.apache.flink.runtime.io.network.util.TestBufferFactory) ArgumentMatchers.anyLong(org.mockito.ArgumentMatchers.anyLong) BufferConsumer(org.apache.flink.runtime.io.network.buffer.BufferConsumer) InputChannelTestUtils.createSingleInputGate(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createSingleInputGate) ResultPartitionType(org.apache.flink.runtime.io.network.partition.ResultPartitionType) Callable(java.util.concurrent.Callable) CompletableFuture(java.util.concurrent.CompletableFuture) BufferProvider(org.apache.flink.runtime.io.network.buffer.BufferProvider) NetworkBufferPool(org.apache.flink.runtime.io.network.buffer.NetworkBufferPool) TestingResultPartitionManager(org.apache.flink.runtime.io.network.partition.consumer.SingleInputGateTest.TestingResultPartitionManager) Answer(org.mockito.stubbing.Answer) FutureUtils(org.apache.flink.util.concurrent.FutureUtils) BufferAvailabilityListener(org.apache.flink.runtime.io.network.partition.BufferAvailabilityListener) InputChannelTestUtils.createLocalInputChannel(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createLocalInputChannel) Assert.assertArrayEquals(org.junit.Assert.assertArrayEquals) InputGateFairnessTest.setupInputGate(org.apache.flink.runtime.io.network.partition.InputGateFairnessTest.setupInputGate) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) CheckedSupplier(org.apache.flink.util.function.CheckedSupplier) ArgumentMatchers.anyInt(org.mockito.ArgumentMatchers.anyInt) TestProducerSource(org.apache.flink.runtime.io.network.util.TestProducerSource) ExecutorService(java.util.concurrent.ExecutorService) CheckpointStorageLocationReference(org.apache.flink.runtime.state.CheckpointStorageLocationReference) Assert.assertNotNull(org.junit.Assert.assertNotNull) BufferPool(org.apache.flink.runtime.io.network.buffer.BufferPool) Matchers(org.hamcrest.Matchers) Assert.assertTrue(org.junit.Assert.assertTrue) TestPartitionProducer(org.apache.flink.runtime.io.network.util.TestPartitionProducer) Test(org.junit.Test) IOException(java.io.IOException) Mockito.when(org.mockito.Mockito.when) BufferBuilderTestUtils.createFilledFinishedBufferConsumer(org.apache.flink.runtime.io.network.buffer.BufferBuilderTestUtils.createFilledFinishedBufferConsumer) Mockito.verify(org.mockito.Mockito.verify) NoOpFileChannelManager(org.apache.flink.runtime.io.disk.NoOpFileChannelManager) PartitionTestUtils(org.apache.flink.runtime.io.network.partition.PartitionTestUtils) Collections(java.util.Collections) Assert.assertEquals(org.junit.Assert.assertEquals) PartitionNotFoundException(org.apache.flink.runtime.io.network.partition.PartitionNotFoundException) ResultSubpartitionView(org.apache.flink.runtime.io.network.partition.ResultSubpartitionView) BufferAvailabilityListener(org.apache.flink.runtime.io.network.partition.BufferAvailabilityListener) ResultPartitionID(org.apache.flink.runtime.io.network.partition.ResultPartitionID) IntermediateResultPartitionID(org.apache.flink.runtime.jobgraph.IntermediateResultPartitionID) IOException(java.io.IOException) ResultPartitionManager(org.apache.flink.runtime.io.network.partition.ResultPartitionManager) TestingResultPartitionManager(org.apache.flink.runtime.io.network.partition.consumer.SingleInputGateTest.TestingResultPartitionManager) InputChannelTestUtils.createLocalInputChannel(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createLocalInputChannel) InputChannelTestUtils.createSingleInputGate(org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createSingleInputGate) Test(org.junit.Test)

Aggregations

ResultPartitionManager (org.apache.flink.runtime.io.network.partition.ResultPartitionManager)27 Test (org.junit.Test)22 TaskEventDispatcher (org.apache.flink.runtime.io.network.TaskEventDispatcher)13 ResultPartitionID (org.apache.flink.runtime.io.network.partition.ResultPartitionID)12 InputChannelID (org.apache.flink.runtime.io.network.partition.consumer.InputChannelID)9 InputChannelTestUtils.createLocalInputChannel (org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createLocalInputChannel)7 PartitionNotFoundException (org.apache.flink.runtime.io.network.partition.PartitionNotFoundException)7 TestingResultPartitionManager (org.apache.flink.runtime.io.network.partition.consumer.SingleInputGateTest.TestingResultPartitionManager)7 IOException (java.io.IOException)6 NetworkEnvironment (org.apache.flink.runtime.io.network.NetworkEnvironment)6 NetworkBufferPool (org.apache.flink.runtime.io.network.buffer.NetworkBufferPool)6 BufferAvailabilityListener (org.apache.flink.runtime.io.network.partition.BufferAvailabilityListener)6 InputChannelTestUtils.createSingleInputGate (org.apache.flink.runtime.io.network.partition.InputChannelTestUtils.createSingleInputGate)6 ResultPartition (org.apache.flink.runtime.io.network.partition.ResultPartition)6 ResultSubpartitionView (org.apache.flink.runtime.io.network.partition.ResultSubpartitionView)6 EmbeddedChannel (org.apache.flink.shaded.netty4.io.netty.channel.embedded.EmbeddedChannel)6 CompletableFuture (java.util.concurrent.CompletableFuture)5 JobID (org.apache.flink.api.common.JobID)5 IntermediateResultPartitionID (org.apache.flink.runtime.jobgraph.IntermediateResultPartitionID)5 Executor (java.util.concurrent.Executor)4