You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Roman Khachatryan (Jira)" <ji...@apache.org> on 2022/04/22 14:45:00 UTC
[jira] [Resolved] (FLINK-27218) Serializer in OperatorState has not been updated when new Serializers are NOT incompatible
[ https://issues.apache.org/jira/browse/FLINK-27218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roman Khachatryan resolved FLINK-27218.
---------------------------------------
Fix Version/s: 1.16.0
1.15.1
Resolution: Fixed
Merged into master as 4033ddc5fa682a1619f8f22348e2ee38afcc1c85,
into 1.15 as 3d4b3a495b273c3a15ce7d35ba5a5b2e4ddc4c20.
> Serializer in OperatorState has not been updated when new Serializers are NOT incompatible
> ------------------------------------------------------------------------------------------
>
> Key: FLINK-27218
> URL: https://issues.apache.org/jira/browse/FLINK-27218
> Project: Flink
> Issue Type: Bug
> Components: Runtime / State Backends
> Affects Versions: 1.15.1
> Reporter: Yue Ma
> Assignee: Yue Ma
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.16.0, 1.15.1
>
> Attachments: image-2022-04-13-14-50-10-921.png, image-2022-04-18-21-48-30-519.png
>
>
> OperatorState such as *BroadcastState* or *PartitionableListState* can only be constructed via {*}DefaultOperatorStateBackend{*}. But when *BroadcastState* or *PartitionableListState* Serializer changes after we restart the job , it seems to have the following problems .
> As an example, we can see how PartitionableListState is initialized.
> First, RestoreOperation will construct a restored PartitionableListState based on the information in the snapshot.
> Then StateMetaInfo in partitionableListState will be updated as the following code
> {code:java}
> TypeSerializerSchemaCompatibility<S> stateCompatibility =
> restoredPartitionableListStateMetaInfo.updatePartitionStateSerializer(newPartitionStateSerializer);
> partitionableListState.setStateMetaInfo(restoredPartitionableListStateMetaInfo);{code}
> The main problem is that there is also an *internalListCopySerializer* in *PartitionableListState* that is built using the previous Serializer and it has not been updated.
> Therefore, when we update the StateMetaInfo, the *internalListCopySerializer* also needs to be updated.
>
--
This message was sent by Atlassian Jira
(v8.20.7#820007)