>From these snippets it is hard to tell what's going wrong. Could you maybe
give us a minimal example with which to reproduce the problem?
Alternatively, have you read through Flink's serializer documentation [1]?
Have you tried to use a simple POJO instead of inheriting from a HashMap?

The stack trace looks as if the job fails deserializing some key of your
MapRecord map.

[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/types_serialization.html#most-frequent-issues

Cheers,
Till

On Wed, Feb 3, 2021 at 11:49 AM 赵一旦 <hinobl...@gmail.com> wrote:

> Some facts are possibly related with these, since another job do not meet
> these expectations.
> The problem job use a class which contains a field of Class MapRecord, and
> MapRecord is defined to extend HashMap so as to accept variable json data.
>
> Class MapRecord:
>
> @NoArgsConstructor
> @Slf4j
> public class MapRecord extends HashMap<Object, Object> implements 
> Serializable {
>     @Override
>     public void setTimestamp(Long timestamp) {
>         put("timestamp", timestamp);
>         put("server_time", timestamp);
>     }
>
>     @Override
>     public Long getTimestamp() {
>         try {
>             Object ts = getOrDefault("timestamp", getOrDefault("server_time", 
> 0L));
>             return ((Number) Optional.ofNullable(ts).orElse(0L)).longValue();
>         } catch (Exception e) {
>             log.error("Error, MapRecord's timestamp invalid.", e);
>             return 0L;
>         }
>     }
> }
>
> Class UserAccessLog:
>
> public class UserAccessLog extends AbstractRecord<UserAccessLog> {
>     private MapRecord d;  // I think this is related to the problem...
>
>     ... ...
>
> }
>
>
> 赵一旦 <hinobl...@gmail.com> 于2021年2月3日周三 下午6:43写道:
>
>> Actually the exception is different every time I stop the job.
>> Such as:
>> (1) com.esotericsoftware.kryo.KryoException: Unable to find class: g^XT
>> The stack as I given above.
>>
>> (2) java.lang.IndexOutOfBoundsException: Index: 46, Size: 17
>> 2021-02-03 18:37:24
>> java.lang.IndexOutOfBoundsException: Index: 46, Size: 17
>>     at java.util.ArrayList.rangeCheck(ArrayList.java:657)
>>     at java.util.ArrayList.get(ArrayList.java:433)
>>     at com.esotericsoftware.kryo.util.MapReferenceResolver.getReadObject(
>> MapReferenceResolver.java:42)
>>     at com.esotericsoftware.kryo.Kryo.readReferenceOrNull(Kryo.java:805)
>>     at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:759)
>>     at com.esotericsoftware.kryo.serializers.MapSerializer.read(
>> MapSerializer.java:135)
>>     at com.esotericsoftware.kryo.serializers.MapSerializer.read(
>> MapSerializer.java:21)
>>     at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:761)
>>     at org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer
>> .deserialize(KryoSerializer.java:346)
>>     at org.apache.flink.api.java.typeutils.runtime.PojoSerializer
>> .deserialize(PojoSerializer.java:411)
>>     at org.apache.flink.streaming.runtime.streamrecord.
>> StreamElementSerializer.deserialize(StreamElementSerializer.java:202)
>>     at org.apache.flink.streaming.runtime.streamrecord.
>> StreamElementSerializer.deserialize(StreamElementSerializer.java:46)
>>     at org.apache.flink.runtime.plugable.
>> NonReusingDeserializationDelegate.read(NonReusingDeserializationDelegate
>> .java:55)
>>     at org.apache.flink.runtime.io.network.api.serialization.
>> SpillingAdaptiveSpanningRecordDeserializer.getNextRecord(
>> SpillingAdaptiveSpanningRecordDeserializer.java:92)
>>     at org.apache.flink.streaming.runtime.io.StreamTaskNetworkInput
>> .emitNext(StreamTaskNetworkInput.java:145)
>>     at org.apache.flink.streaming.runtime.io.StreamOneInputProcessor
>> .processInput(StreamOneInputProcessor.java:67)
>>     at org.apache.flink.streaming.runtime.io.StreamTwoInputProcessor
>> .processInput(StreamTwoInputProcessor.java:92)
>>     at org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(
>> StreamTask.java:372)
>>     at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor
>> .runMailboxLoop(MailboxProcessor.java:186)
>>     at org.apache.flink.streaming.runtime.tasks.StreamTask
>> .runMailboxLoop(StreamTask.java:575)
>>     at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(
>> StreamTask.java:539)
>>     at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:722)
>>     at org.apache.flink.runtime.taskmanager.Task.run(Task.java:547)
>>     at java.lang.Thread.run(Thread.java:748)
>>
>> (3)  com.esotericsoftware.kryo.KryoException: Encountered unregistered
>> class ID: 96
>> com.esotericsoftware.kryo.KryoException: Encountered unregistered class
>> ID: 96
>>     at com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(
>> DefaultClassResolver.java:119)
>>     at com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:641)
>>     at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:752)
>>     at com.esotericsoftware.kryo.serializers.MapSerializer.read(
>> MapSerializer.java:135)
>>     at com.esotericsoftware.kryo.serializers.MapSerializer.read(
>> MapSerializer.java:21)
>>     at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:761)
>>     at org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer
>> .deserialize(KryoSerializer.java:346)
>>     at org.apache.flink.api.java.typeutils.runtime.PojoSerializer
>> .deserialize(PojoSerializer.java:411)
>>     at org.apache.flink.streaming.runtime.streamrecord.
>> StreamElementSerializer.deserialize(StreamElementSerializer.java:202)
>>     at org.apache.flink.streaming.runtime.streamrecord.
>> StreamElementSerializer.deserialize(StreamElementSerializer.java:46)
>>     at org.apache.flink.runtime.plugable.
>> NonReusingDeserializationDelegate.read(NonReusingDeserializationDelegate
>> .java:55)
>>     at org.apache.flink.runtime.io.network.api.serialization.
>> SpillingAdaptiveSpanningRecordDeserializer.getNextRecord(
>> SpillingAdaptiveSpanningRecordDeserializer.java:92)
>>     at org.apache.flink.streaming.runtime.io.StreamTaskNetworkInput
>> .emitNext(StreamTaskNetworkInput.java:145)
>>     at org.apache.flink.streaming.runtime.io.StreamOneInputProcessor
>> .processInput(StreamOneInputProcessor.java:67)
>>     at org.apache.flink.streaming.runtime.io.StreamTwoInputProcessor
>> .processInput(StreamTwoInputProcessor.java:92)
>>     at org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(
>> StreamTask.java:372)
>>     at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor
>> .runMailboxLoop(MailboxProcessor.java:186)
>>     at org.apache.flink.streaming.runtime.tasks.StreamTask
>> .runMailboxLoop(StreamTask.java:575)
>>     at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(
>> StreamTask.java:539)
>>     at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:722)
>>     at org.apache.flink.runtime.taskmanager.Task.run(Task.java:547)
>>     at java.lang.Thread.run(Thread.java:748)
>>
>> ...
>>
>> Till Rohrmann <trohrm...@apache.org> 于2021年2月3日周三 下午6:28写道:
>>
>>> Hi,
>>>
>>> could you show us the job you are trying to resume? Is it a SQL job or a
>>> DataStream job, for example?
>>>
>>> From the stack trace, it looks as if the class g^XT is not on the class
>>> path.
>>>
>>> Cheers,
>>> Till
>>>
>>> On Wed, Feb 3, 2021 at 10:30 AM 赵一旦 <hinobl...@gmail.com> wrote:
>>>
>>>> I have a job, the checkpoint and savepoint all right.
>>>> But, if I stop the job using 'stop -p', after the savepoint generated,
>>>> then the job goes to fail. Here is the log:
>>>>
>>>> 2021-02-03 16:53:55,179 WARN  org.apache.flink.runtime.taskmanager.Task
>>>>                    [] - ual_ft_uid_subid_SidIncludeFilter ->
>>>> ual_ft_uid_subid_Default
>>>> PassThroughFilter[null, null) -> ual_ft_uid_subid_UalUidFtExtractor ->
>>>> ual_ft_uid_subid_EmptyUidFilter (17/30)#0
>>>> (46abce5d1148b56094726d442df2fd9c) switched
>>>> from RUNNING to FAILED.
>>>>
>>>> com.esotericsoftware.kryo.KryoException: Unable to find class: g^XT
>>>>         at
>>>> com.esotericsoftware.kryo.util.DefaultClassResolver.readName(DefaultClassResolver.java:138)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(DefaultClassResolver.java:115)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:641)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:752)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:143)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:21)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:761)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.deserialize(KryoSerializer.java:346)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.api.java.typeutils.runtime.PojoSerializer.deserialize(PojoSerializer.java:411)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.streaming.runtime.streamrecord.StreamElementSerializer.deserialize(StreamElementSerializer.java:202)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.streaming.runtime.streamrecord.StreamElementSerializer.deserialize(StreamElementSerializer.java:46)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.runtime.plugable.NonReusingDeserializationDelegate.read(NonReusingDeserializationDelegate.java:55)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.runtime.io.network.api.serialization.SpillingAdaptiveSpanningRecordDeserializer.getNextRecord(SpillingAdaptiveSpanningRecordDeserializer.java:92)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.streaming.runtime.io.StreamTaskNetworkInput.emitNext(StreamTaskNetworkInput.java:145)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:67)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.streaming.runtime.io.StreamTwoInputProcessor.processInput(StreamTwoInputProcessor.java:92)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:372)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:186)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:575)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:539)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:722)
>>>> [flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at org.apache.flink.runtime.taskmanager.Task.run(Task.java:547)
>>>> [flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at java.lang.Thread.run(Thread.java:748) [?:1.8.0_251]
>>>> Caused by: java.lang.ClassNotFoundException: g^XT
>>>>         at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
>>>> ~[?:1.8.0_251]
>>>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
>>>> ~[?:1.8.0_251]
>>>>         at
>>>> org.apache.flink.util.FlinkUserCodeClassLoader.loadClassWithoutExceptionHandling(FlinkUserCodeClassLoader.java:63)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.util.ChildFirstClassLoader.loadClassWithoutExceptionHandling(ChildFirstClassLoader.java:72)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at
>>>> org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:49)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
>>>> ~[?:1.8.0_251]
>>>>         at
>>>> org.apache.flink.runtime.execution.librarycache.FlinkUserCodeClassLoaders$SafetyNetWrapperClassLoader.loadClass(FlinkUserCodeClassLoaders.java:168)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         at java.lang.Class.forName0(Native Method) ~[?:1.8.0_251]
>>>>         at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_251]
>>>>         at
>>>> com.esotericsoftware.kryo.util.DefaultClassResolver.readName(DefaultClassResolver.java:136)
>>>> ~[flink-dist_2.11-1.12.0.jar:1.12.0]
>>>>         ... 22 more
>>>>
>>>>

Reply via email to