gaoyunhaii commented on a change in pull request #7368: [FLINK-10742][network] 
Let Netty use Flink's buffers directly in credit-based mode
URL: https://github.com/apache/flink/pull/7368#discussion_r386105137
 
 

 ##########
 File path: 
flink-runtime/src/test/java/org/apache/flink/runtime/io/network/netty/NettyMessageClientSideSerializationTest.java
 ##########
 @@ -183,15 +192,18 @@ private void testEncodeDecodeBuffer(boolean 
testReadOnlyBuffer, boolean testComp
                }
 
                NettyMessage.BufferResponse expected = new 
NettyMessage.BufferResponse(
-                       testBuffer, random.nextInt(), new InputChannelID(), 
random.nextInt());
-               NettyMessage.BufferResponse actual = encodeAndDecode(expected);
+                       testBuffer, random.nextInt(), 
inputChannel.getInputChannelId(), random.nextInt());
+               NettyMessage.BufferResponse actual = encodeAndDecode(expected, 
channel);
 
                // Netty 4.1 is not copying the messages, but retaining slices 
of them. BufferResponse actual is in this case
                // holding a reference to the buffer. Buffer will be recycled 
only once "actual" will be released.
-               assertFalse(buffer.isRecycled());
-               assertFalse(testBuffer.isRecycled());
+               assertTrue(buffer.isRecycled());
 
 Review comment:
   This is because previously the decoder simply create a readonly slice of the 
received data and transfer it to the client handler, and the client handler is 
responsible for copying the data into the `NetworkBuffer`. However, with the 
change the decoder will apply a new `NetworkBuffer` and copy the received data 
into `NetworkBuffer` directly. 
   
   Another point is that in this case, we always write a complete message into 
`EmbeddedChannel` and the channel will not repartition the message. Thus during 
the encoding and decoding, no accumulation will happen. This is also not always 
true for real case.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to