wsry commented on a change in pull request #18365:
URL: https://github.com/apache/flink/pull/18365#discussion_r785620947



##########
File path: 
flink-runtime/src/test/java/org/apache/flink/runtime/io/network/netty/PartitionRequestClientFactoryTest.java
##########
@@ -112,6 +115,35 @@ public void testExceptionsAreNotCached() throws Exception {
         }
     }
 
+    @Test
+    public void testReuseNettyPartitionRequestClient() throws Exception {
+        NettyTestUtil.NettyServerAndClient nettyServerAndClient = 
createNettyServerAndClient();
+        try {
+            checkReuseNettyPartitionRequestClient(nettyServerAndClient, 1);
+            checkReuseNettyPartitionRequestClient(nettyServerAndClient, 2);
+            checkReuseNettyPartitionRequestClient(nettyServerAndClient, 5);
+            checkReuseNettyPartitionRequestClient(nettyServerAndClient, 10);
+        } finally {
+            nettyServerAndClient.client().shutdown();
+            nettyServerAndClient.server().shutdown();
+        }
+    }
+
+    private void checkReuseNettyPartitionRequestClient(
+            NettyTestUtil.NettyServerAndClient nettyServerAndClient, int 
maxNumberOfConnections)
+            throws Exception {
+        Set<NettyPartitionRequestClient> set = new HashSet<>();
+
+        final PartitionRequestClientFactory factory =
+                new PartitionRequestClientFactory(
+                        nettyServerAndClient.client(), 0, 
maxNumberOfConnections);
+        for (int i = 0; i < Math.max(100, maxNumberOfConnections); i++) {
+            final ConnectionID connectionID = 
nettyServerAndClient.getConnectionID(i);
+            set.add(factory.createPartitionRequestClient(connectionID));
+        }
+        assertEquals(maxNumberOfConnections, set.size());

Review comment:
       Maybe using a random connection index and replace this assertion with 
```assertTrue(set.size() <= maxNumberOfConnections);``` which is more like the 
real case? 
   In the current implementation, the selection of connection index value (1 - 
100) and the modulus operation (%) guarantee that it can pass, but it seems 
that this case is not common enough.




-- 
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.

To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to