[ https://issues.apache.org/jira/browse/HIVE-3253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13699750#comment-13699750 ]
Hudson commented on HIVE-3253: ------------------------------ Integrated in Hive-trunk-hadoop2 #270 (See [https://builds.apache.org/job/Hive-trunk-hadoop2/270/]) HIVE-3253 : ArrayIndexOutOfBounds exception for deeply nested structs (Thejas Nair via Ashutosh Chauhan) (Revision 1499450) Result = FAILURE hashutosh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1499450 Files : * /hive/trunk/data/files/nested_complex.txt * /hive/trunk/hbase-handler/src/test/org/apache/hadoop/hive/hbase/TestLazyHBaseObject.java * /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java * /hive/trunk/ql/src/test/queries/clientnegative/nested_complex_neg.q * /hive/trunk/ql/src/test/queries/clientpositive/nested_complex.q * /hive/trunk/ql/src/test/results/clientnegative/nested_complex_neg.q.out * /hive/trunk/ql/src/test/results/clientpositive/alter_partition_coltype.q.out * /hive/trunk/ql/src/test/results/clientpositive/auto_sortmerge_join_1.q.out * /hive/trunk/ql/src/test/results/clientpositive/auto_sortmerge_join_11.q.out * /hive/trunk/ql/src/test/results/clientpositive/auto_sortmerge_join_12.q.out * /hive/trunk/ql/src/test/results/clientpositive/auto_sortmerge_join_2.q.out * /hive/trunk/ql/src/test/results/clientpositive/auto_sortmerge_join_3.q.out * /hive/trunk/ql/src/test/results/clientpositive/auto_sortmerge_join_4.q.out * /hive/trunk/ql/src/test/results/clientpositive/auto_sortmerge_join_5.q.out * /hive/trunk/ql/src/test/results/clientpositive/auto_sortmerge_join_7.q.out * /hive/trunk/ql/src/test/results/clientpositive/auto_sortmerge_join_8.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucket_map_join_1.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucket_map_join_2.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketcontext_1.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketcontext_2.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketcontext_3.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketcontext_4.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketcontext_5.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketcontext_6.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketcontext_7.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketcontext_8.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketmapjoin1.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketmapjoin10.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketmapjoin11.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketmapjoin12.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketmapjoin13.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketmapjoin7.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketmapjoin8.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketmapjoin9.q.out * /hive/trunk/ql/src/test/results/clientpositive/bucketmapjoin_negative3.q.out * /hive/trunk/ql/src/test/results/clientpositive/columnstats_partlvl.q.out * /hive/trunk/ql/src/test/results/clientpositive/columnstats_tbllvl.q.out * /hive/trunk/ql/src/test/results/clientpositive/combine2.q.out * /hive/trunk/ql/src/test/results/clientpositive/combine2_hadoop20.q.out * /hive/trunk/ql/src/test/results/clientpositive/filter_join_breaktask.q.out * /hive/trunk/ql/src/test/results/clientpositive/groupby_sort_1.q.out * /hive/trunk/ql/src/test/results/clientpositive/groupby_sort_skew_1.q.out * /hive/trunk/ql/src/test/results/clientpositive/input23.q.out * /hive/trunk/ql/src/test/results/clientpositive/input42.q.out * /hive/trunk/ql/src/test/results/clientpositive/input_part7.q.out * /hive/trunk/ql/src/test/results/clientpositive/input_part9.q.out * /hive/trunk/ql/src/test/results/clientpositive/join_filters_overlap.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_dml_1.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_dml_11.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_dml_12.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_dml_13.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_dml_2.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_dml_3.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_dml_4.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_dml_5.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_dml_6.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_dml_7.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_dml_8.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_dml_9.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_query_multiskew_1.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_query_multiskew_2.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_query_multiskew_3.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_query_oneskew_1.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_query_oneskew_2.q.out * /hive/trunk/ql/src/test/results/clientpositive/list_bucket_query_oneskew_3.q.out * /hive/trunk/ql/src/test/results/clientpositive/louter_join_ppr.q.out * /hive/trunk/ql/src/test/results/clientpositive/macro.q.out * /hive/trunk/ql/src/test/results/clientpositive/metadataonly1.q.out * /hive/trunk/ql/src/test/results/clientpositive/nested_complex.q.out * /hive/trunk/ql/src/test/results/clientpositive/outer_join_ppr.q.out * /hive/trunk/ql/src/test/results/clientpositive/pcr.q.out * /hive/trunk/ql/src/test/results/clientpositive/ppd_join_filter.q.out * /hive/trunk/ql/src/test/results/clientpositive/ppd_union_view.q.out * /hive/trunk/ql/src/test/results/clientpositive/ppr_allchildsarenull.q.out * /hive/trunk/ql/src/test/results/clientpositive/rand_partitionpruner1.q.out * /hive/trunk/ql/src/test/results/clientpositive/rand_partitionpruner3.q.out * /hive/trunk/ql/src/test/results/clientpositive/regexp_extract.q.out * /hive/trunk/ql/src/test/results/clientpositive/router_join_ppr.q.out * /hive/trunk/ql/src/test/results/clientpositive/sample10.q.out * /hive/trunk/ql/src/test/results/clientpositive/sample6.q.out * /hive/trunk/ql/src/test/results/clientpositive/sample8.q.out * /hive/trunk/ql/src/test/results/clientpositive/sample9.q.out * /hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin9.q.out * /hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_13.q.out * /hive/trunk/ql/src/test/results/clientpositive/smb_mapjoin_15.q.out * /hive/trunk/ql/src/test/results/clientpositive/sort_merge_join_desc_5.q.out * /hive/trunk/ql/src/test/results/clientpositive/sort_merge_join_desc_6.q.out * /hive/trunk/ql/src/test/results/clientpositive/sort_merge_join_desc_7.q.out * /hive/trunk/ql/src/test/results/clientpositive/transform_ppr1.q.out * /hive/trunk/ql/src/test/results/clientpositive/transform_ppr2.q.out * /hive/trunk/ql/src/test/results/clientpositive/truncate_column_list_bucket.q.out * /hive/trunk/ql/src/test/results/clientpositive/udf_explode.q.out * /hive/trunk/ql/src/test/results/clientpositive/udf_java_method.q.out * /hive/trunk/ql/src/test/results/clientpositive/udf_reflect.q.out * /hive/trunk/ql/src/test/results/clientpositive/udf_reflect2.q.out * /hive/trunk/ql/src/test/results/clientpositive/udtf_explode.q.out * /hive/trunk/ql/src/test/results/clientpositive/union24.q.out * /hive/trunk/ql/src/test/results/clientpositive/union_ppr.q.out * /hive/trunk/ql/src/test/results/compiler/plan/cast1.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/groupby2.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/groupby3.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/groupby4.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/groupby5.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/groupby6.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/input20.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/input8.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/input_part1.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/input_testxpath.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/input_testxpath2.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/join4.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/join5.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/join6.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/join7.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/join8.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/sample1.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/udf1.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/udf4.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/udf6.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/udf_case.q.xml * /hive/trunk/ql/src/test/results/compiler/plan/udf_when.q.xml * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyFactory.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazySimpleSerDe.java * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyUtils.java * /hive/trunk/serde/src/test/org/apache/hadoop/hive/serde2/lazy/TestLazyArrayMapStruct.java > ArrayIndexOutOfBounds exception for deeply nested structs > --------------------------------------------------------- > > Key: HIVE-3253 > URL: https://issues.apache.org/jira/browse/HIVE-3253 > Project: Hive > Issue Type: Bug > Components: Serializers/Deserializers > Affects Versions: 0.9.0, 0.10.0 > Reporter: Swarnim Kulkarni > Assignee: Thejas M Nair > Fix For: 0.12.0 > > Attachments: HIVE-3253.2.patch, HIVE-3253.3.patch, > HIVE-3253_moar_nesting.1.patch, jsonout.hive > > > It was observed that while creating table with deeply nested structs might > throw this exception: > {code} > java.lang.ArrayIndexOutOfBoundsException: 9 > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:281) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:263) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:276) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:263) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:276) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:263) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:276) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:263) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:276) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyStructInspector(LazyFactory.java:354) > {code} > The reason being that currently the separators array has been hardcoded to be > of size 8 in the LazySimpleSerde. > {code} > // Read the separators: We use 8 levels of separators by default, but we > // should change this when we allow users to specify more than 10 levels > // of separators through DDL. > serdeParams.separators = new byte[8]; > {code} > If possible, we should increase this size or at least make it configurable to > properly handle deeply nested structs. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira