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

Shubham Chaurasia reassigned HIVE-21966:
----------------------------------------


> Llap external client - Arrow Serializer throws ArrayIndexOutOfBoundsException 
> in some cases
> -------------------------------------------------------------------------------------------
>
>                 Key: HIVE-21966
>                 URL: https://issues.apache.org/jira/browse/HIVE-21966
>             Project: Hive
>          Issue Type: Bug
>          Components: llap, Serializers/Deserializers
>    Affects Versions: 3.1.1
>            Reporter: Shubham Chaurasia
>            Assignee: Shubham Chaurasia
>            Priority: Major
>
> When we submit query through llap-ext-client, arrow serializer throws 
> ArrayIndexOutOfBoundsException when 1),  2) and 3) below are satisfied.
> 1) {{hive.vectorized.execution.filesink.arrow.native.enabled=true}} to take 
> arrow serializer code path.
> 2) Query contains a filter or limit clause which enforces 
> {{VectorizedRowBatch#selectedInUse=true}}
> 3) Projection involves a column of type {{MultiValuedColumnVector}}.
> Sample stacktrace:
> {code}
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 150
>       at 
> org.apache.hadoop.hive.ql.io.arrow.Serializer.writeGeneric(Serializer.java:679)
>       at 
> org.apache.hadoop.hive.ql.io.arrow.Serializer.writePrimitive(Serializer.java:518)
>       at 
> org.apache.hadoop.hive.ql.io.arrow.Serializer.write(Serializer.java:276)
>       at 
> org.apache.hadoop.hive.ql.io.arrow.Serializer.writeStruct(Serializer.java:342)
>       at 
> org.apache.hadoop.hive.ql.io.arrow.Serializer.write(Serializer.java:282)
>       at 
> org.apache.hadoop.hive.ql.io.arrow.Serializer.writeList(Serializer.java:365)
>       at 
> org.apache.hadoop.hive.ql.io.arrow.Serializer.write(Serializer.java:279)
>       at 
> org.apache.hadoop.hive.ql.io.arrow.Serializer.serializeBatch(Serializer.java:199)
>       at 
> org.apache.hadoop.hive.ql.exec.vector.filesink.VectorFileSinkArrowOperator.process(VectorFileSinkArrowOperator.java:135)
>       ... 30 more
> {code}
> It can be reproduced by:
> from beeline:
> {code}
> CREATE TABLE complex_tbl(c1 array<struct<f1:string,f2:string>>) STORED AS ORC;
> INSERT INTO complex_tbl SELECT ARRAY(NAMED_STRUCT('f1','v11', 'f2','v21'), 
> NAMED_STRUCT('f1','v21', 'f2','v22'));
> {code}
> and when we fire query: {{select * from complex_tbl limit 1}} through 
> llap-ext-client.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to