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

Alexis Sarda-Espinosa commented on FLINK-16686:
-----------------------------------------------

The test I did was using Flink 1.13 with a custom job and custom RocksDB 
configuration. With it, I could reliably get an exception after roughly 30 
seconds if I didn't use a custom serializer. After repeating the test with 
Flink 1.15, I no longer get the exception, so maybe something changed and 
TTL-compaction can work with Kryo now?

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

Reply via email to