[
https://issues.apache.org/jira/browse/FLINK-5397?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stephan Ewen resolved FLINK-5397.
---------------------------------
Resolution: Fixed
Fix Version/s: 1.3.0
1.2.0
Fixed in
- 1.2.0 via 3554c96d118a411906a22b1f1087de073617a4c7
- 1.3.0 via 09614cc82486b2682ba08876b47019cc604574ed
> Fail to deserialize savepoints in v1.1 when there exist missing fields in
> class serialization descriptors
> ---------------------------------------------------------------------------------------------------------
>
> Key: FLINK-5397
> URL: https://issues.apache.org/jira/browse/FLINK-5397
> Project: Flink
> Issue Type: Bug
> Components: State Backends, Checkpointing
> Reporter: Xiaogang Shi
> Assignee: Stefan Richter
> Fix For: 1.2.0, 1.3.0
>
>
> To restore from the savepoints in previous versions, Flink now keeps all
> classes whose serialization is changed and put them in a separated package
> ("migration").
> When deserializing the old savepoints, flink will look up correct descriptors
> ({{ObjectStreamClass}}) for these classes, without using those ones written
> in serialized data. The implementation however is problematic when there
> exist missing field descriptors in the serialized data.
> When serializing an object, Java will only write the descriptors of those
> non-null fields. But when we look up class descriptors with given classes,
> all fields will be put into the descriptors. As a result, we will deserialize
> the savepoints with incorrect descriptors, leading to serialization
> exceptions.
> A simple resolution is to update the name of read descriptors using
> Reflections, without using different descriptors.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)