Hi mates !

I’ve implemented a job, that stores it’s progress using MapState[K, V], where K 
- is java.lang.String, and V - is a collection of some typed objects 
java.util.List[SomeClass[_]]
When Flink is trying to serialize this state, it is using kryo serializer for 
value object and fails with StackOverflowException

java.lang.StackOverflowError
        at java.util.HashMap.hash(HashMap.java:338)
        at java.util.HashMap.get(HashMap.java:556)
        at com.esotericsoftware.kryo.Generics.getConcreteClass(Generics.java:43)
 
This problem is related with the known bug in kryo 
(https://github.com/EsotericSoftware/kryo/issues/341), and reveals itself only 
when type of SomeClass is a java.util.BitSet. 

I’ve checked my job locally (from IDE) with latest (4.0.2 
<https://mvnrepository.com/artifact/com.esotericsoftware/kryo/4.0.2>) kryo lib, 
and it works fine, but I couldn’t change kryo version for distributed mode, 
because it’s packaged into fat-jar (flink-dist_2.11-1.6.1.jar), that
contains all runtime dependencies for Flink.

Maybe you can give me any advices, how to solve this issue, or register a 
separate serializers for this case ?

Thx for your help.


Sincerely yours,
Rinat Sharipov
Software Engineer at 1DMP CORE Team

email: r.shari...@cleverdata.ru <mailto:a.totma...@cleverdata.ru>
mobile: +7 (925) 416-37-26

CleverDATA
make your data clever

Reply via email to