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

Reply via email to