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