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

Martijn Visser closed FLINK-33062.
----------------------------------
    Resolution: Won't Fix

> Deserialization creates multiple instances of case objects in Scala 2.13
> ------------------------------------------------------------------------
>
>                 Key: FLINK-33062
>                 URL: https://issues.apache.org/jira/browse/FLINK-33062
>             Project: Flink
>          Issue Type: Bug
>          Components: API / Core
>    Affects Versions: 1.15.4, 1.17.1
>         Environment: Scala 2.13.12
> Flink 1.17.1 and 1.15.4 running inside IntelliJ
> Flink 1.15.4 running in AWS Managed Flink
>            Reporter: SmedbergM
>            Priority: Major
>
> See [https://github.com/SmedbergM/mwe-flink-2-13-deserialization] for a 
> minimal working example.
> When running a Flink job with Scala 2.13, deserialized objects whose fields 
> are case objects have those case objects re-instantiated. Thus any code that 
> relies on reference equality (such as methods of `scala.Option`) will break.
> I suspect that this is due to Kyro deserialization not being singleton-aware 
> for case objects, but I haven't been able to drill in and catch this in the 
> act.
> Here are relevant lines of my application log:
>  
> {code:java}
> 17:37:13.224 [jobmanager-io-thread-1] INFO  o.a.f.r.c.CheckpointCoordinator 
> -- No checkpoint found during restore.
> 17:37:13.531 [parse-book -> Sink: log-book (2/2)#0] WARN  
> smedbergm.mwe.BookSink$ -- Book.isbn: None with identityHashCode 1043314405 
> reports isEmpty false; true None is 2019204827
> 17:37:13.531 [parse-book -> Sink: log-book (1/2)#0] INFO  
> smedbergm.mwe.BookSink$ -- Winkler, Scott: Terraform In Action (ISBN 
> 978-1-61729-689-5) $49.99
> 17:37:13.534 [parse-book -> Sink: log-book (2/2)#0] WARN  
> smedbergm.mwe.BookSink$ -- Book.isbn: None with identityHashCode 465138693 
> reports isEmpty false; true None is 2019204827
> 17:37:13.534 [parse-book -> Sink: log-book (1/2)#0] INFO  
> smedbergm.mwe.BookSink$ -- Čukić, Ivan: Functional Programming in C++ (ISBN 
> 978-1-61729-381-8) $49.99
> 17:37:13.538 [flink-akka.actor.default-dispatcher-8] INFO  
> o.a.f.r.c.CheckpointCoordinator -- Stopping checkpoint coordinator for job 
> eed1c049790ac5f38664ddfd6b049282. {code}
> I know that https://issues.apache.org/jira/browse/FLINK-13414 (support for 
> Scala 2.13) is still listed as in-progress, but there is no warning in the 
> docs that using 2.13 might not be stable. (This particular error does not 
> occur on Scala 2.12, in this case because Option.isEmpty was re-implemented 
> in 2.13; however, I suspect that multiple deserialization may be occurring 
> already in 2.12.)
>  
>  



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

Reply via email to