[jira] [Commented] (HIVE-26713) StringExpr ArrayIndexOutOfBoundsException with LIKE '%xxx%'
[ https://issues.apache.org/jira/browse/HIVE-26713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17809758#comment-17809758 ] Ryu Kobayashi commented on HIVE-26713: -- Thanks [~zhangbutao] and [~aturoczy] . > StringExpr ArrayIndexOutOfBoundsException with LIKE '%xxx%' > --- > > Key: HIVE-26713 > URL: https://issues.apache.org/jira/browse/HIVE-26713 > Project: Hive > Issue Type: Bug > Components: storage-api >Affects Versions: All Versions >Reporter: Ryu Kobayashi >Assignee: Ryu Kobayashi >Priority: Major > Labels: pull-request-available > Fix For: 4.1.0 > > Time Spent: 40m > Remaining Estimate: 0h > > When LIKE(%xxx%) search is performed, if the character string contains > control characters, overflow occurs as follows. > https://github.com/apache/hive/blob/master/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringExpr.java#L345 > {code:java} > // input[next] == -1 > // shift[input[next] & MAX_BYTE] == 255 > next += shift[input[next] & MAX_BYTE]; {code} > > Stack trace: > {code:java} > TaskAttempt 3 failed, info=[Error: Error while running task ( failure ) : > attempt_1665986828766_64791_1_00_00_3:java.lang.RuntimeException: > java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: > Hive Runtime Error while processing row > 2 at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:220) > 3 at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:177) > 4 at > org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:479) > 5 at > org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:73) > 6 at > org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:61) > 7 at java.security.AccessController.doPrivileged(Native Method) > 8 at javax.security.auth.Subject.doAs(Subject.java:422) > 9 at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1893) > 10at > org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:61) > 11at > org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:37) > 12at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36) > 13at > com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:108) > 14at > com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:41) > 15at > com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:77) > 16at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > 17at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > 18at java.lang.Thread.run(Thread.java:750) > 19Caused by: java.lang.RuntimeException: > org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while > processing row > 20at > org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:95) > 21at > org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.pushRecord(MapRecordSource.java:70) > 22at > org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.run(MapRecordProcessor.java:419) > 23at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:194) > 24... 16 more > 25Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime > Error while processing row > 26at > org.apache.hadoop.hive.ql.exec.vector.VectorMapOperator.process(VectorMapOperator.java:883) > 27at > org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:86) > 28... 19 more > 29Caused by: java.lang.ArrayIndexOutOfBoundsException: 255 > 30at > org.apache.hadoop.hive.ql.exec.vector.expressions.StringExpr$BoyerMooreHorspool.find(StringExpr.java:409) > 31at > org.apache.hadoop.hive.ql.exec.vector.expressions.AbstractFilterStringColLikeStringScalar$MiddleChecker.index(AbstractFilterStringColLikeStringScalar.java:314) > 32at > org.apache.hadoop.hive.ql.exec.vector.expressions.AbstractFilterStringColLikeStringScalar$MiddleChecker.check(AbstractFilterStringColLikeStringScalar.java:307) > 33at > org.apache.hadoop.hive.ql.exec.vector.expressions.AbstractFilterStringColLikeStringScalar.evaluate(AbstractFilterStringColLikeStringScalar.java:115) > 34at > org.apache.hadoop.hive.ql.exec.vector.expressions.FilterExprOrExpr.evaluate(FilterExprOrExpr.java:183) > 35at >
[jira] [Commented] (HIVE-26713) StringExpr ArrayIndexOutOfBoundsException with LIKE '%xxx%'
[ https://issues.apache.org/jira/browse/HIVE-26713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17805444#comment-17805444 ] Ryu Kobayashi commented on HIVE-26713: -- This issue should still be resolved not yet. I have recreated the PR. > StringExpr ArrayIndexOutOfBoundsException with LIKE '%xxx%' > --- > > Key: HIVE-26713 > URL: https://issues.apache.org/jira/browse/HIVE-26713 > Project: Hive > Issue Type: Bug > Components: storage-api >Affects Versions: All Versions >Reporter: Ryu Kobayashi >Assignee: Ryu Kobayashi >Priority: Major > Labels: pull-request-available > Time Spent: 40m > Remaining Estimate: 0h > > When LIKE(%xxx%) search is performed, if the character string contains > control characters, overflow occurs as follows. > https://github.com/apache/hive/blob/master/storage-api/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/StringExpr.java#L345 > {code:java} > // input[next] == -1 > // shift[input[next] & MAX_BYTE] == 255 > next += shift[input[next] & MAX_BYTE]; {code} > > Stack trace: > {code:java} > TaskAttempt 3 failed, info=[Error: Error while running task ( failure ) : > attempt_1665986828766_64791_1_00_00_3:java.lang.RuntimeException: > java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: > Hive Runtime Error while processing row > 2 at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:220) > 3 at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.run(TezProcessor.java:177) > 4 at > org.apache.tez.runtime.LogicalIOProcessorRuntimeTask.run(LogicalIOProcessorRuntimeTask.java:479) > 5 at > org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:73) > 6 at > org.apache.tez.runtime.task.TaskRunner2Callable$1.run(TaskRunner2Callable.java:61) > 7 at java.security.AccessController.doPrivileged(Native Method) > 8 at javax.security.auth.Subject.doAs(Subject.java:422) > 9 at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1893) > 10at > org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:61) > 11at > org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:37) > 12at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36) > 13at > com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:108) > 14at > com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:41) > 15at > com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:77) > 16at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > 17at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > 18at java.lang.Thread.run(Thread.java:750) > 19Caused by: java.lang.RuntimeException: > org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while > processing row > 20at > org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:95) > 21at > org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.pushRecord(MapRecordSource.java:70) > 22at > org.apache.hadoop.hive.ql.exec.tez.MapRecordProcessor.run(MapRecordProcessor.java:419) > 23at > org.apache.hadoop.hive.ql.exec.tez.TezProcessor.initializeAndRunProcessor(TezProcessor.java:194) > 24... 16 more > 25Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime > Error while processing row > 26at > org.apache.hadoop.hive.ql.exec.vector.VectorMapOperator.process(VectorMapOperator.java:883) > 27at > org.apache.hadoop.hive.ql.exec.tez.MapRecordSource.processRow(MapRecordSource.java:86) > 28... 19 more > 29Caused by: java.lang.ArrayIndexOutOfBoundsException: 255 > 30at > org.apache.hadoop.hive.ql.exec.vector.expressions.StringExpr$BoyerMooreHorspool.find(StringExpr.java:409) > 31at > org.apache.hadoop.hive.ql.exec.vector.expressions.AbstractFilterStringColLikeStringScalar$MiddleChecker.index(AbstractFilterStringColLikeStringScalar.java:314) > 32at > org.apache.hadoop.hive.ql.exec.vector.expressions.AbstractFilterStringColLikeStringScalar$MiddleChecker.check(AbstractFilterStringColLikeStringScalar.java:307) > 33at > org.apache.hadoop.hive.ql.exec.vector.expressions.AbstractFilterStringColLikeStringScalar.evaluate(AbstractFilterStringColLikeStringScalar.java:115) > 34at > org.apache.hadoop.hive.ql.exec.vector.expressions.FilterExprOrExpr.evaluate(FilterExprOrExpr.java:183) > 35at >