Hi Liting,
Did you ever change your defined class, e.g. xxx.SparkIdentifiers,
xxx.ServiceEvent, xxx.Event and so on?
Or did you change your flink program? Kryo serializer needs to register class
for serialization, which is not friendly for version upgrade.
Moreover, except from the compatibility problem, we also suggest you to use
customized serializers for your customized class for better performance.
Best
Yun Tang
From: Liting Liu (litiliu)
Sent: Friday, May 6, 2022 10:20
To: user@flink.apache.org
Subject: Failed to restore from ck, because of KryoException
Hi, We are using flink 1.14.3. But when the job try to restart from checkPoint,
the following exception accour. What's wrong?
And how can i avoid it?
Caused by: TimerException{com.esotericsoftware.kryo.KryoException:
java.lang.IndexOutOfBoundsException: Index: 99, Size: 9
Serialization trace:
webexSiteName (com.cisco.wx2.diagnostic_events.SparkIdentifiers)
identifiers (com.cisco.wx2.diagnostic_events.ServiceEvent)
event (com.cisco.wx2.diagnostic_events.Event)}
... 14 more
Caused by: com.esotericsoftware.kryo.KryoException:
java.lang.IndexOutOfBoundsException: Index: 99, Size: 9
Serialization trace:
webexSiteName (com.cisco.wx2.diagnostic_events.SparkIdentifiers)
identifiers (com.cisco.wx2.diagnostic_events.ServiceEvent)
event (com.cisco.wx2.diagnostic_events.Event)
at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:125)
at
com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:528)
at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:679)
at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:106)
at
com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:528)
at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:679)
at com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:106)
at
com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:528)
at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:761)
at
org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.deserialize(KryoSerializer.java:354)
at
org.apache.flink.contrib.streaming.state.RocksDBMapState.deserializeUserValue(RocksDBMapState.java:394)
at
org.apache.flink.contrib.streaming.state.RocksDBMapState.access$100(RocksDBMapState.java:65)
at
org.apache.flink.contrib.streaming.state.RocksDBMapState$RocksDBMapEntry.getValue(RocksDBMapState.java:502)
at
org.apache.flink.contrib.streaming.state.RocksDBMapState$2.next(RocksDBMapState.java:217)
at scala.collection.convert.Wrappers$JIteratorWrapper.next(Wrappers.scala:43)
at scala.collection.IterableLike$class.head(IterableLike.scala:107)
at scala.collection.AbstractIterable.head(Iterable.scala:54)
at
com.cisco.wx2.flink.functions.UnifiedClientJoinAnalysisWindowFunction$$anonfun$buildAnalysisPipeline$1.apply(UnifiedClientJoinAnalysisWindowFunction.scala:170)
at
com.cisco.wx2.flink.functions.UnifiedClientJoinAnalysisWindowFunction$$anonfun$buildAnalysisPipeline$1.apply(UnifiedClientJoinAnalysisWindowFunction.scala:170)
at scala.Option.foreach(Option.scala:257)