Andrew Palumbo created FLINK-3762:
-------------------------------------
Summary: Kryo StackOverflowError due to disabled Kryo Reference tracking
Key: FLINK-3762
URL:
https://issues.apache.org/jira/browse/FLINK-3762 Project: Flink
Issue Type: Bug
Components: Core
Affects Versions: 1.0.1
Reporter: Andrew Palumbo
Fix For: 1.0.2
As discussed on the dev list,
In {{KryoSerializer.java}}
Kryo Reference tracking is disabled by default:
{code}
kryo.setReferences(false);
{code}
This can causes {{StackOverflowError}} Exceptions when serializing many objects that may contain recursive objects:
{code}
java.lang.StackOverflowError
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:48)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:495)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:495)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:495)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523)
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:495)
{code}
By enabling reference tracking, we can fix this problem.
[1]
https://gist.github.com/andrewpalumbo/40c7422a5187a24cd03d7d81feb2a419
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)