[ 
https://issues.apache.org/jira/browse/FLINK-37546?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maximilian Michels updated FLINK-37546:
---------------------------------------
    Description: 
KryoSerializer loads 
[FlinkScalaKryoInstantiator|https://github.com/apache/flink/blob/cc017da9ae12ea58d473d730a84d39440ef928a3/flink-table/flink-table-api-scala/src/main/scala/org/apache/flink/table/api/runtime/types/FlinkScalaKryoInstantiator.scala#L62]
 via 
[Reflection|https://github.com/apache/flink/blob/cc017da9ae12ea58d473d730a84d39440ef928a3/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializer.java#L472]
 which configures Kryo to use StdInstantiatorStrategy. After FLINK-3154 removed 
the Twitter Chill library, this breaks various types. See 
[https://github.com/EsotericSoftware/kryo/issues/1173]

At first, it seemed that the Kryo update caused this but I can reproduce this 
also with Kryo 2.24.0 with the Chill library removed.

The fix is to use DefaultInstantiatorStrategy, possible with 
StdIstantiatorStrategy as a fallback, e.g.:
{noformat}
Kryo.DefaultInstantiatorStrategy initStrategy = new 
Kryo.DefaultInstantiatorStrategy();
initStrategy.setFallbackInstantiatorStrategy(new StdInstantiatorStrategy());
kryo.setStrategy(initStrategy);
{noformat}
Of course, we need to test what other implications this has, but it seems this 
would be a new sensible default.

  was:
KryoSerializer loads FlinkScalaKryoInstantiator via Reflection which configures 
Kryo to use StdInstantiatorStrategy. After FLINK-3154 removed the Twitter Chill 
library, this breaks various types. See 
https://github.com/EsotericSoftware/kryo/issues/1173

At first, it seemed that the Kryo update caused this but I can reproduce this 
also with Kryo 2.24.0 with the Chill library removed.

The fix is to use DefaultInstantiatorStrategy, possible with 
StdIstantiatorStrategy as a fallback, e.g.:

{noformat}
Kryo.DefaultInstantiatorStrategy initStrategy = new 
Kryo.DefaultInstantiatorStrategy();
initStrategy.setFallbackInstantiatorStrategy(new StdInstantiatorStrategy());
kryo.setStrategy(initStrategy);
{noformat}

Of course, we need to test what other implications this has, but it seems this 
would be a new sensible default.


> KryoSerializer breaks without Twitter Chill library
> ---------------------------------------------------
>
>                 Key: FLINK-37546
>                 URL: https://issues.apache.org/jira/browse/FLINK-37546
>             Project: Flink
>          Issue Type: Bug
>          Components: API / Type Serialization System
>    Affects Versions: 2.0.0
>            Reporter: Maximilian Michels
>            Assignee: Maximilian Michels
>            Priority: Major
>             Fix For: 2.0.1
>
>
> KryoSerializer loads 
> [FlinkScalaKryoInstantiator|https://github.com/apache/flink/blob/cc017da9ae12ea58d473d730a84d39440ef928a3/flink-table/flink-table-api-scala/src/main/scala/org/apache/flink/table/api/runtime/types/FlinkScalaKryoInstantiator.scala#L62]
>  via 
> [Reflection|https://github.com/apache/flink/blob/cc017da9ae12ea58d473d730a84d39440ef928a3/flink-core/src/main/java/org/apache/flink/api/java/typeutils/runtime/kryo/KryoSerializer.java#L472]
>  which configures Kryo to use StdInstantiatorStrategy. After FLINK-3154 
> removed the Twitter Chill library, this breaks various types. See 
> [https://github.com/EsotericSoftware/kryo/issues/1173]
> At first, it seemed that the Kryo update caused this but I can reproduce this 
> also with Kryo 2.24.0 with the Chill library removed.
> The fix is to use DefaultInstantiatorStrategy, possible with 
> StdIstantiatorStrategy as a fallback, e.g.:
> {noformat}
> Kryo.DefaultInstantiatorStrategy initStrategy = new 
> Kryo.DefaultInstantiatorStrategy();
> initStrategy.setFallbackInstantiatorStrategy(new StdInstantiatorStrategy());
> kryo.setStrategy(initStrategy);
> {noformat}
> Of course, we need to test what other implications this has, but it seems 
> this would be a new sensible default.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to