[ https://issues.apache.org/jira/browse/FLINK-16686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17558119#comment-17558119 ]
Alexis Sarda-Espinosa commented on FLINK-16686: ----------------------------------------------- It seems I spoke to soon, something definitely changed but I still get an exception, it's just that it's thrown after approximately 1 hour instead of 30 seconds, not sure why. > [State TTL] Make user class loader available in native RocksDB compaction > thread > -------------------------------------------------------------------------------- > > Key: FLINK-16686 > URL: https://issues.apache.org/jira/browse/FLINK-16686 > Project: Flink > Issue Type: Bug > Components: Runtime / State Backends > Affects Versions: 1.8.0, 1.11.3, 1.13.0, 1.12.3 > Reporter: Andrey Zagrebin > Priority: Minor > Labels: auto-deprioritized-major, auto-deprioritized-minor > > The issue is initially reported > [here|https://stackoverflow.com/questions/60745711/flink-kryo-serializer-because-chill-serializer-couldnt-be-found]. > The problem is that the java code of Flink compaction filter is called from > RocksDB native C++ code. It is called in the context of the native compaction > thread. RocksDB has utilities to create java Thread context for the Flink > java callback. Presumably, the Java thread context class loader is not set at > all and if it is queried then it produces NullPointerException. > The provided report enabled a list state with TTL. The compaction filter has > to deserialise elements to check expiration. The deserialiser relies on Kryo > which queries the thread context class loader which is expected to be the > user class loader of the task but turns out to be null. > We should investigate how to pass the user class loader to the compaction > thread of the list state with TTL. -- This message was sent by Atlassian Jira (v8.20.7#820007)