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)