[ https://issues.apache.org/jira/browse/FLINK-8836?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16415826#comment-16415826 ]
Christopher Ng commented on FLINK-8836: --------------------------------------- [~StephanEwen] i asked on the Kryo mailing list and the answer (possibly not authoritative) was that given that Kryo itself is not intended to be thread-safe, we probably shouldn't assume that implementations of com.esotericsoftware.kryo.Serializer are thread-safe. I'd suggest we should actually assume the opposite. > Duplicating a KryoSerializer does not duplicate registered default serializers > ------------------------------------------------------------------------------ > > Key: FLINK-8836 > URL: https://issues.apache.org/jira/browse/FLINK-8836 > Project: Flink > Issue Type: Bug > Components: Type Serialization System > Reporter: Tzu-Li (Gordon) Tai > Priority: Major > > The {{duplicate()}} method of the {{KryoSerializer}} is as following: > {code:java} > public KryoSerializer<T> duplicate() { > return new KryoSerializer<>(this); > } > protected KryoSerializer(KryoSerializer<T> toCopy) { > defaultSerializers = toCopy.defaultSerializers; > defaultSerializerClasses = toCopy.defaultSerializerClasses; > kryoRegistrations = toCopy.kryoRegistrations; > ... > } > {code} > Shortly put, when duplicating a {{KryoSerializer}}, the > {{defaultSerializers}} serializer instances are directly provided to the new > {{KryoSerializer}} instance. > This causes the fact that those default serializers are shared across two > different {{KryoSerializer}} instances, and therefore not a correct duplicate. -- This message was sent by Atlassian JIRA (v7.6.3#76005)