[ https://issues.apache.org/jira/browse/FLINK-8755?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16380019#comment-16380019 ]
ASF GitHub Bot commented on FLINK-8755: --------------------------------------- Github user pnowojski commented on a diff in the pull request: https://github.com/apache/flink/pull/5581#discussion_r171181261 --- Diff: flink-runtime/src/test/java/org/apache/flink/runtime/io/network/partition/SubpartitionTestBase.java --- @@ -182,7 +182,7 @@ private static void assertNextBufferOrEvent( ResultSubpartitionView readView, int expectedReadableBufferSize, boolean expectedIsBuffer, - Class<? extends AbstractEvent> expectedEventClass, + @Nullable Class<? extends AbstractEvent> expectedEventClass, --- End diff -- I would prefer for this method to return `Buffer` and: ``` void assertNextBuffer(...) { Buffer buffer = assertNextBufferOrEvent(...); assertTrue(buffer.isBuffer()); buffer.recycleBuffer(); } void assertNextEvent(...) { Buffer buffer = assertNextBufferOrEvent(...); assertFalse(buffer.isBuffer()); assertThat(EventSerializer.fromBuffer(buffer, ...), ...); buffer.recycleBuffer(); } ``` btw, you are not recycling the buffer in case of failure > SpilledSubpartitionView wrongly relys on the backlog for determining whether > more data is available > --------------------------------------------------------------------------------------------------- > > Key: FLINK-8755 > URL: https://issues.apache.org/jira/browse/FLINK-8755 > Project: Flink > Issue Type: Sub-task > Components: Network > Reporter: Nico Kruber > Assignee: Nico Kruber > Priority: Blocker > Fix For: 1.5.0 > > > {code} > public BufferAndBacklog getNextBuffer() throws IOException, > InterruptedException { > //... > int newBacklog = parent.decreaseBuffersInBacklog(current); > return new BufferAndBacklog(current, newBacklog > 0, newBacklog, > nextBufferIsEvent); > {code} > relies on the backlog to signal further data availability. However, if there > are only events left in the buffer queue, their buffers are not included in > the backlog counting and therefore, {{isMoreAvailable}} will be wrongly > {{false}} here. -- This message was sent by Atlassian JIRA (v7.6.3#76005)