You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Dominik Dębowczyk (Jira)" <ji...@apache.org> on 2026/10/21 12:02:00 UTC
[jira] [Created] (FLINK-41063) DataStream large-record sorting unnecessarily falls back to Kryo for payload serialization
Dominik Dębowczyk created FLINK-41063:
-----------------------------------------
Summary: DataStream large-record sorting unnecessarily falls back to Kryo for payload serialization
Key: FLINK-41063
URL: https://issues.apache.org/jira/browse/FLINK-41063
Project: Flink
Issue Type: Bug
Components: Runtime / Task
Affects Versions: 2.2.1, 2.3.0
Environment: Observed on Flink 2.2.1; regression tests reproduce the issue and verify the fix on 2.3.0.
Reporter: Dominik Dębowczyk
With {{taskmanager.runtime.large-record-handler}} enabled, both {{FixedLengthByteKeyComparator}} and {{VariableLengthByteKeyComparator}} extract the entire record as a sort key, although comparison only uses the byte-array key and timestamp.
{{LargeRecordHandler}} then infers a serializer for the complete record instead of reusing the supplied payload serializer. This can unexpectedly select Kryo or fail when generic types are disabled.
We encountered this with the Apache Beam Flink Runner: {{{}Kryo initialization failed with a classloader conflict during spilling{}}}, surfaced as “The sorter is closed already.” JFR revealed the underlying exception.
The proposed fix is to extract only the byte-array key and timestamp and return matching flat comparators. This preserves ordering, avoids payload serializer inference, and eliminates redundant payload serialization in the key spill file.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)