[ 
https://issues.apache.org/jira/browse/FLINK-16819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17068261#comment-17068261
 ] 

Lsw_aka_laplace commented on FLINK-16819:
-----------------------------------------

[~jark] hi Jark, this is the bug(or not) I mentioned  before, actually we found 
that there are several UDAFs encountering Kyro serialization exception 
everytime we try to migrate to Flink 1.9.1 from Flink 1.7.2. We also tried  to 
register our own specialized serializer for these UDAFs, but unforunately, it 
didn't work. we are look forward to the solution or tips to fix this kind of 
problem cuz our users cannot their jobs on Flink 1.9  due to this problem. ANY 
opinion is welcomed.

Tkx

> Got KryoException while using UDAF in flink1.9
> ----------------------------------------------
>
>                 Key: FLINK-16819
>                 URL: https://issues.apache.org/jira/browse/FLINK-16819
>             Project: Flink
>          Issue Type: Bug
>          Components: API / Type Serialization System, Table SQL / Planner
>    Affects Versions: 1.9.1
>         Environment: Flink1.9.1
> Apache hadoop 2.7.2
>            Reporter: Xingxing Di
>            Priority: Major
>
> Recently,  we are trying to upgrade online *sql jobs* from flink1.7 to 
> flink1.9 , most jobs works fine, but some jobs got  KryoExceptions. 
> We found that UDAF will trigger this exception, btw ,we are using blink 
> planner.
> *Here is the full stack traces:*
>  2020-03-27 11:46:55
>  com.esotericsoftware.kryo.KryoException: 
> java.lang.IndexOutOfBoundsException: Index: 104, Size: 2
>  Serialization trace:
>  seed (java.util.Random)
>  gen (com.tdunning.math.stats.AVLTreeDigest)
>      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.readClassAndObject(Kryo.java:761)
>      at 
> org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.deserialize(KryoSerializer.java:346)
>      at 
> org.apache.flink.util.InstantiationUtil.deserializeFromByteArray(InstantiationUtil.java:536)
>      at 
> org.apache.flink.table.dataformat.BinaryGeneric.getJavaObjectFromBinaryGeneric(BinaryGeneric.java:86)
>      at 
> org.apache.flink.table.dataformat.DataFormatConverters$GenericConverter.toExternalImpl(DataFormatConverters.java:628)
>      at 
> org.apache.flink.table.dataformat.DataFormatConverters$GenericConverter.toExternalImpl(DataFormatConverters.java:633)
>      at 
> org.apache.flink.table.dataformat.DataFormatConverters$DataFormatConverter.toExternal(DataFormatConverters.java:320)
>      at 
> org.apache.flink.table.dataformat.DataFormatConverters$PojoConverter.toExternalImpl(DataFormatConverters.java:1293)
>      at 
> org.apache.flink.table.dataformat.DataFormatConverters$PojoConverter.toExternalImpl(DataFormatConverters.java:1257)
>      at 
> org.apache.flink.table.dataformat.DataFormatConverters$DataFormatConverter.toExternal(DataFormatConverters.java:302)
>      at GroupAggsHandler$71.setAccumulators(Unknown Source)
>      at 
> org.apache.flink.table.runtime.operators.aggregate.GroupAggFunction.processElement(GroupAggFunction.java:151)
>      at 
> org.apache.flink.table.runtime.operators.aggregate.GroupAggFunction.processElement(GroupAggFunction.java:43)
>      at 
> org.apache.flink.streaming.api.operators.KeyedProcessOperator.processElement(KeyedProcessOperator.java:85)
>      at 
> org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processElement(StreamOneInputProcessor.java:164)
>      at 
> org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:143)
>      at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:279)
>      at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.run(StreamTask.java:301)
>      at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:406)
>      at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:705)
>      at org.apache.flink.runtime.taskmanager.Task.run(Task.java:530)
>      at java.lang.Thread.run(Thread.java:748)
>  Caused by: java.lang.IndexOutOfBoundsException: Index: 104, Size: 2
>      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.readObject(Kryo.java:677)
>      at 
> com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:106)
>      ... 26 more



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to