Rui Fan created FLINK-40667:
-------------------------------

             Summary: Buffer ref-count leaks in CDR recovery filtering end in 
free() on a live segment
                 Key: FLINK-40667
                 URL: https://issues.apache.org/jira/browse/FLINK-40667
             Project: Flink
          Issue Type: Sub-task
          Components: Runtime / Checkpointing
            Reporter: Rui Fan
            Assignee: Rui Fan


Siblings of FLINK-40345 (which patched only the inner handler): 
`SpillingWithFilteringHandler.recover()` retains the buffer before 
`segmentSerializerFor` can throw `IOException`, and 
`ChannelStateFilteringHandler.filterAndRewrite`'s two early throws fire before 
the inner guard. On the exception the retained buffer is never released, so 
`closeInternal()` later `free()`s a segment still held by a live 
`NetworkBuffer`. Fix: obtain the serializer before retaining, and move 
`retainBuffer()` past the early throws.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to