[
https://issues.apache.org/jira/browse/FLINK-9755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16538214#comment-16538214
]
ASF GitHub Bot commented on FLINK-9755:
---------------------------------------
Github user zhijiangW commented on a diff in the pull request:
https://github.com/apache/flink/pull/6272#discussion_r201247182
--- Diff:
flink-runtime/src/test/java/org/apache/flink/runtime/io/network/partition/consumer/RemoteInputChannelTest.java
---
@@ -687,7 +690,65 @@ public void testFairDistributionFloatingBuffers()
throws Exception {
} catch (Throwable t) {
thrown = t;
} finally {
- cleanup(networkBufferPool, null, thrown, channel1,
channel2, channel3);
+ cleanup(networkBufferPool, null, null, thrown,
channel1, channel2, channel3);
+ }
+ }
+
+ /**
+ * Tests that failures are propagated correctly if
+ * {@link RemoteInputChannel#notifyBufferAvailable(Buffer)} throws an
exception. Also tests that
+ * a second listener will be notified in this case.
+ */
+ @Test
+ public void testFailureInNotifyBufferAvailable() throws Exception {
+ // Setup
+ final int numExclusiveBuffers = 0;
+ final int numFloatingBuffers = 1;
+ final int numTotalBuffers = numExclusiveBuffers +
numFloatingBuffers;
+ final NetworkBufferPool networkBufferPool = new
NetworkBufferPool(
+ numTotalBuffers, 32);
+
+ final SingleInputGate inputGate = createSingleInputGate();
+ final RemoteInputChannel successfulRemoteIC =
createRemoteInputChannel(inputGate);
+
inputGate.setInputChannel(successfulRemoteIC.partitionId.getPartitionId(),
successfulRemoteIC);
+
+// inputGate.assignExclusiveSegments(networkBufferPool,
numExclusiveBuffers);
--- End diff --
remove this annotated code?
> Exceptions in RemoteInputChannel#notifyBufferAvailable() are not propagated
> to the responsible thread
> -----------------------------------------------------------------------------------------------------
>
> Key: FLINK-9755
> URL: https://issues.apache.org/jira/browse/FLINK-9755
> Project: Flink
> Issue Type: Bug
> Components: Network
> Affects Versions: 1.5.0
> Reporter: Nico Kruber
> Assignee: Nico Kruber
> Priority: Critical
> Labels: pull-request-available
> Fix For: 1.5.2, 1.6.0
>
>
> The credit-based flow control implementation of
> RemoteInputChannel#notifyBufferAvailable() does not forward errors (like the
> {{IllegalStateException}}) to the thread that is being notified. The calling
> code at {{LocalBufferPool#recycle}}, however, relies on the callback
> forwarding errors and completely ignores any failures.
> Therefore, we could end up with a program waiting forever for the callback
> and not even a failure message in the logs.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)