[
https://issues.apache.org/jira/browse/FLINK-9202?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16445538#comment-16445538
]
Timo Walther commented on FLINK-9202:
-------------------------------------
This issue is not easy to fix as it touches the problem of properly restoring
serializers from serialization config snapshots. I think we won't change this
for Flink 1.5 but as part of Flink 1.6 where schema/serializer evolution is a
big point on the feature list.
I already prepared some test data and code that can be reused:
https://github.com/twalthr/flink/tree/FLINK-9202
> AvroSerializer should not be serializing the target Avro type class
> -------------------------------------------------------------------
>
> Key: FLINK-9202
> URL: https://issues.apache.org/jira/browse/FLINK-9202
> Project: Flink
> Issue Type: Bug
> Components: Type Serialization System
> Reporter: Tzu-Li (Gordon) Tai
> Assignee: Timo Walther
> Priority: Critical
>
> The {{AvroSerializer}} contains this field which is written when the
> serializer is written into savepoints:
> [https://github.com/apache/flink/blob/be7c89596a3b9cd8805a90aaf32336ec2759a1f7/flink-formats/flink-avro/src/main/java/org/apache/flink/formats/avro/typeutils/AvroSerializer.java#L78]
> This causes Avro schema evolution to not work properly, because Avro
> generated classes have non-fixed serialVersionUIDs. Once a new Avro class is
> generated with a new schema, that class can not be loaded on restore due to
> incompatible UIDs, and thus the serializer can not be successfully
> deserialized.
> A possible solution would be to only write the classname, and dynamically
> load the class into a transient field.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)