[ 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)