[
https://issues.apache.org/jira/browse/FLINK-30612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17721739#comment-17721739
]
guoxin edited comment on FLINK-30612 at 5/11/23 11:36 AM:
----------------------------------------------------------
this variable in inner-class ObjectArrayConverter is not thread-safe, please
see
[https://github.com/apache/flink/blob/24685395ccf19344e9331201ae0cd600b7722a89/flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/data/util/DataFormatConverters.java#L1155]
the same problem exists with inner-class MapConverter and ObjectArrayConverter
in DataFormatConverters.
the latest version still has this problem. obviously.
when i define a implementation used to query set and list data in redis, i get
messy data.
was (Author: guoxin):
this variable in inner-class ObjectArrayConverter is not thread-safe, please
see
[https://github.com/apache/flink/blob/24685395ccf19344e9331201ae0cd600b7722a89/flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/data/util/DataFormatConverters.java#L1155|https://github.com/apache/flink/blob/24685395ccf19344e9331201ae0cd600b7722a89/flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/data/util/DataFormatConverters.java#L1155]
> ObjectArrayConverter is not thread-safe,raised by reuseArray、reuseWriter
> ------------------------------------------------------------------------
>
> Key: FLINK-30612
> URL: https://issues.apache.org/jira/browse/FLINK-30612
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / API, Table SQL / Runtime
> Affects Versions: 1.12.2
> Reporter: guoxin
> Priority: Major
>
> data clutter in multi-threaded environment.
> by design?
> or , how do i use it in multi-thread env?
> {code:java}
> package org.apache.flink.table.data.util;
> public class DataFormatConverters{
> ....
> public static final class ObjectArrayConverter<T> extends
> DataFormatConverter<ArrayData, T[]>{
> ....
> // it's not thread-safe
> private transient BinaryArrayData reuseArray;
> private transient BinaryArrayWriter reuseWriter;
> ....
> private ArrayData toBinaryArray(T[] value){
> // not thread-safe
> }
> ....
> }
> ....
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)