[jira] [Commented] (FLINK-11274) Scala 2.12 Kryo serialization bug

2019-01-16 Thread Zhenhao Li (JIRA)


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

Zhenhao Li commented on FLINK-11274:


Hi Aljoscha, thanks for checking. I am 100% sure that I resolved it by changing 
the version number from 1.7.1 to 1.7.0.

Since reporting this issue, I have done a major structural refactor of the 
codebase and updated the code for performance optimization. I no longer call 
the filter method on SortedSet anymore.   
I just tried to reproduce the issue. This time everything still worked when I 
changed the version to 1.7.1. 

That was indeed very puzzling to me when it occurred for the first time. I 
forgot to mention that I was running everything inside IntelliJ IDEA. It could 
as well be a bug there. 

Feel free to close this one. 
 

> Scala 2.12 Kryo serialization bug
> -
>
> Key: FLINK-11274
> URL: https://issues.apache.org/jira/browse/FLINK-11274
> Project: Flink
>  Issue Type: Bug
>Affects Versions: 1.7.1
> Environment: Flink 1.7.1
> Scala 2.12.8
>Reporter: Zhenhao Li
>Priority: Major
>
> The following code works well for serializing Scala classes, e.g., 
> SortedSet[T], without problem in 1.7.0.
> ```
> env.getConfig.registerTypeWithKryoSerializer(
>   classOf[ClosureSerializer.Closure],
>   classOf[ClosureSerializer]
> )
> ```
> However, in 1.7.1 the following error occurs when checkpointing. 
> ```
> Serialization trace:
> cmp$2 (scala.math.Ordering$$anon$6)
>   at 
> com.esotericsoftware.kryo.util.DefaultClassResolver.readName(DefaultClassResolver.java:138)
>   at 
> com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(DefaultClassResolver.java:115)
>   at com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:641)
>   at 
> com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:99)
>   at 
> com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:528)
>   at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:761)
>   at 
> com.twitter.chill.SortedSetSerializer.read(SortedSetSerializer.scala:38)
>   at 
> com.twitter.chill.SortedSetSerializer.read(SortedSetSerializer.scala:21)
>   at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:657)
>   at 
> org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.copy(KryoSerializer.java:231)
>   at 
> org.apache.flink.api.scala.typeutils.CaseClassSerializer.copy(CaseClassSerializer.scala:101)
>   at 
> org.apache.flink.api.scala.typeutils.CaseClassSerializer.copy(CaseClassSerializer.scala:32)
>   at 
> org.apache.flink.runtime.state.heap.CopyOnWriteStateTable.get(CopyOnWriteStateTable.java:287)
>   at 
> org.apache.flink.runtime.state.heap.CopyOnWriteStateTable.get(CopyOnWriteStateTable.java:311)
>   at 
> org.apache.flink.runtime.state.heap.HeapValueState.value(HeapValueState.java:73)
>   at 
> org.apache.flink.streaming.api.scala.function.StatefulFunction.applyWithState(StatefulFunction.scala:41)
>   at 
> org.apache.flink.streaming.api.scala.function.StatefulFunction.applyWithState$(StatefulFunction.scala:40)
>   at 
> org.apache.flink.streaming.api.scala.KeyedStream$$anon$3.applyWithState(KeyedStream.scala:591)
>   at 
> org.apache.flink.streaming.api.scala.KeyedStream$$anon$3.flatMap(KeyedStream.scala:596)
>   at 
> org.apache.flink.streaming.api.operators.StreamFlatMap.processElement(StreamFlatMap.java:50)
>   at 
> org.apache.flink.streaming.runtime.io.StreamInputProcessor.processInput(StreamInputProcessor.java:202)
>   at 
> org.apache.flink.streaming.runtime.tasks.OneInputStreamTask.run(OneInputStreamTask.java:105)
>   at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:300)
>   at org.apache.flink.runtime.taskmanager.Task.run(Task.java:704)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException: 
> io.connecterra.stateful.AggregationSlidingWindowStateUpdater$$$Lambda$506/497325684
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> com.esotericsoftware.kryo.util.DefaultClassResolver.readName(DefaultClassResolver.java:136)
>   ... 24 common frames omitted
> ```



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (FLINK-11274) Scala 2.12 Kryo serialization bug

2019-01-16 Thread Aljoscha Krettek (JIRA)


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

Aljoscha Krettek commented on FLINK-11274:
--

>From looking at the list of changed between 1.7.0 and 1.7.1, I don't think 
>anything could have caused this: 
>https://issues.apache.org/jira/browse/FLINK-10367?jql=project%20%3D%20FLINK%20and%20fixVersion%20%3D%201.7.1%20and%20resolution%20!%3D%20unresolved

 

Is the code that you use to test this exactly the same when you test with Flink 
1.7.0 and Flink 1.7.1? I mean, can you simply change the version in your POM 
back to 1.7.0 and the error goes away?

> Scala 2.12 Kryo serialization bug
> -
>
> Key: FLINK-11274
> URL: https://issues.apache.org/jira/browse/FLINK-11274
> Project: Flink
>  Issue Type: Bug
>Affects Versions: 1.7.1
> Environment: Flink 1.7.1
> Scala 2.12.8
>Reporter: Zhenhao Li
>Priority: Major
>
> The following code works well for serializing Scala classes, e.g., 
> SortedSet[T], without problem in 1.7.0.
> ```
> env.getConfig.registerTypeWithKryoSerializer(
>   classOf[ClosureSerializer.Closure],
>   classOf[ClosureSerializer]
> )
> ```
> However, in 1.7.1 the following error occurs when checkpointing. 
> ```
> Serialization trace:
> cmp$2 (scala.math.Ordering$$anon$6)
>   at 
> com.esotericsoftware.kryo.util.DefaultClassResolver.readName(DefaultClassResolver.java:138)
>   at 
> com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(DefaultClassResolver.java:115)
>   at com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:641)
>   at 
> com.esotericsoftware.kryo.serializers.ObjectField.read(ObjectField.java:99)
>   at 
> com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:528)
>   at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:761)
>   at 
> com.twitter.chill.SortedSetSerializer.read(SortedSetSerializer.scala:38)
>   at 
> com.twitter.chill.SortedSetSerializer.read(SortedSetSerializer.scala:21)
>   at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:657)
>   at 
> org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.copy(KryoSerializer.java:231)
>   at 
> org.apache.flink.api.scala.typeutils.CaseClassSerializer.copy(CaseClassSerializer.scala:101)
>   at 
> org.apache.flink.api.scala.typeutils.CaseClassSerializer.copy(CaseClassSerializer.scala:32)
>   at 
> org.apache.flink.runtime.state.heap.CopyOnWriteStateTable.get(CopyOnWriteStateTable.java:287)
>   at 
> org.apache.flink.runtime.state.heap.CopyOnWriteStateTable.get(CopyOnWriteStateTable.java:311)
>   at 
> org.apache.flink.runtime.state.heap.HeapValueState.value(HeapValueState.java:73)
>   at 
> org.apache.flink.streaming.api.scala.function.StatefulFunction.applyWithState(StatefulFunction.scala:41)
>   at 
> org.apache.flink.streaming.api.scala.function.StatefulFunction.applyWithState$(StatefulFunction.scala:40)
>   at 
> org.apache.flink.streaming.api.scala.KeyedStream$$anon$3.applyWithState(KeyedStream.scala:591)
>   at 
> org.apache.flink.streaming.api.scala.KeyedStream$$anon$3.flatMap(KeyedStream.scala:596)
>   at 
> org.apache.flink.streaming.api.operators.StreamFlatMap.processElement(StreamFlatMap.java:50)
>   at 
> org.apache.flink.streaming.runtime.io.StreamInputProcessor.processInput(StreamInputProcessor.java:202)
>   at 
> org.apache.flink.streaming.runtime.tasks.OneInputStreamTask.run(OneInputStreamTask.java:105)
>   at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:300)
>   at org.apache.flink.runtime.taskmanager.Task.run(Task.java:704)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassNotFoundException: 
> io.connecterra.stateful.AggregationSlidingWindowStateUpdater$$$Lambda$506/497325684
>   at java.lang.Class.forName0(Native Method)
>   at java.lang.Class.forName(Class.java:348)
>   at 
> com.esotericsoftware.kryo.util.DefaultClassResolver.readName(DefaultClassResolver.java:136)
>   ... 24 common frames omitted
> ```



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)