Github user NicoK commented on a diff in the pull request:

    https://github.com/apache/flink/pull/4485#discussion_r140189504
  
    --- Diff: 
flink-runtime/src/test/java/org/apache/flink/runtime/io/network/buffer/NetworkBufferPoolTest.java
 ---
    @@ -188,14 +195,14 @@ public void 
testRequestMemorySegmentsLessThanTotalBuffers() throws Exception {
     
                NetworkBufferPool globalPool = new 
NetworkBufferPool(numBuffers, 128, MemoryType.HEAP);
     
    -           List<MemorySegment> memorySegments = Collections.emptyList();
                try {
    -                   memorySegments = 
globalPool.requestMemorySegments(numBuffers / 2);
    -
    +                   List<MemorySegment> memorySegments = 
globalPool.requestMemorySegments(numBuffers / 2);
                        assertEquals(memorySegments.size(), numBuffers / 2);
    -           } finally {
    +
                        globalPool.recycleMemorySegments(memorySegments);
                        
assertEquals(globalPool.getNumberOfAvailableMemorySegments(), numBuffers);
    +           } finally {
    --- End diff --
    
    Actually, in case one of the assertions fails, we also need to recycle the 
requested memory segments since they are not in the pool anymore. How about 
this?
    
    ```
                List<MemorySegment> memorySegments = Collections.emptyList();
                try {
                        memorySegments = 
globalPool.requestMemorySegments(numBuffers / 2);
                        assertEquals(memorySegments.size(), numBuffers / 2);
    
                        globalPool.recycleMemorySegments(memorySegments);
                        memorySegments.clear();
                        
assertEquals(globalPool.getNumberOfAvailableMemorySegments(), numBuffers);
                } finally {
                        globalPool.recycleMemorySegments(memorySegments); // 
just in case
                        globalPool.destroy();
                }
    ```


---

Reply via email to