flink-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xiaogang Shi (JIRA)" <j...@apache.org>
Subject [jira] [Created] (FLINK-5397) Fail to deserialize savepoints in v1.1 when there exist missing fields in class serialization descriptors
Date Wed, 28 Dec 2016 08:56:58 GMT
Xiaogang Shi created FLINK-5397:
-----------------------------------

             Summary: 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


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 deserializing 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
a different descriptors.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message