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

Dian Fu reassigned FLINK-41228:
-------------------------------

    Assignee: Sangkyoon Nam

> Thread-mode PyFlink DataStream converters mishandle rows in arrays, lists and 
> maps
> ----------------------------------------------------------------------------------
>
>                 Key: FLINK-41228
>                 URL: https://issues.apache.org/jira/browse/FLINK-41228
>             Project: Flink
>          Issue Type: Bug
>          Components: API / Python
>    Affects Versions: 2.3.0
>            Reporter: Sangkyoon Nam
>            Assignee: Sangkyoon Nam
>            Priority: Major
>
> In PyFlink DataStream thread mode, the container cases below give wrong 
> values or fail; process mode handles them correctly. A {{map}} that returns 
> {{Row([Row(1), Row(2), Row(3)])}} with output type 
> {{Types.ROW([Types.OBJECT_ARRAY(Types.ROW([Types.INT()]))])}} emits 
> {{+I[[+I[3], +I[3], +I[3]]]}} in thread mode and {{+I[[+I[1], +I[2], 
> +I[3]]]}} in process mode. Map values of rows and arrays of tuples behave the 
> same way. A {{LIST}} of rows fails with {{ClassCastException: class 
> pemja.core.object.PyObject cannot be cast to class [Ljava.lang.Object;}}, and 
> a null array field fails with {{TypeError: 'NoneType' object is not 
> iterable}}.
> There are three causes:
> * Java {{RowDataConverter}} and {{TupleDataConverter}} reuse one result 
> object across calls, so a container holds several references to the same 
> object, which later elements overwrite.
> * Python {{from_type_info_proto}} compares {{type_info}} instead of 
> {{type_name}} with {{LIST}}, so lists fall back to {{IdentityDataConverter}}.
> * Python {{ArrayDataConverter}} calls {{tuple()}} on {{None}}.
> I reproduced this on a 2.4-SNAPSHOT build. {{PythonTypeUtils.java}} and 
> {{converters.py}} are the same in 2.3.0 and on master.
> I have a fix with tests. Could someone assign this to me?



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to