[ 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)