[
https://issues.apache.org/jira/browse/FLINK-13702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16963031#comment-16963031
]
Dawid Wysakowicz commented on FLINK-13702:
------------------------------------------
I agree with [~jark]. If we ever keep the {{BinaryString/Generic}} in state
they will be accessed from different threads. That's why those classes should
be thread safe.
I agree, as I said in my first message, the easiest fix would be to make the
{{ensureMaterialized}} synchronized, but I share the concerns of performance
degradation with [~jark].
Honestly I'm wondering right now if it would make sense to get rid of the
{{LazyBinaryFormat}} for now and revisit the problem of long udfs chain. I
think correctness is more important than performance. This should also have a
lower performance cost than synchronizing {{ensureMaterialized}} as it would
only affect long udfs chains (the original reason for introducing the
{{LazyBinaryFormat}}) without affecting every record path. One very broad idea
of how can we solve the problem of multiple conversions between binary and java
object, could be to add a reusable serialization/deserialization statements in
the code generator if needed. Similar to {{reusableInputUnboxingExprs}}.
> BaseMapSerializerTest.testDuplicate fails on Travis
> ---------------------------------------------------
>
> Key: FLINK-13702
> URL: https://issues.apache.org/jira/browse/FLINK-13702
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Planner
> Affects Versions: 1.10.0
> Reporter: Till Rohrmann
> Assignee: Dawid Wysakowicz
> Priority: Critical
> Labels: test-stability
>
> The {{BaseMapSerializerTest.testDuplicate}} fails on Travis with an
> {{java.lang.IndexOutOfBoundsException}}.
> https://api.travis-ci.org/v3/job/570973199/log.txt
--
This message was sent by Atlassian Jira
(v8.3.4#803005)