You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Andrew Palumbo (JIRA)" <ji...@apache.org> on 2016/04/14 20:00:29 UTC
[jira] [Created] (FLINK-3762) Kryo StackOverflowError due to
disabled Kryo Reference tracking
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)