I faced a strange issue, that, Phoenix hbase upsert query fails with
ArrayIndexOutOfBounds exception.

Query looks like:
      upsert into table (pk,col1, col2, col3) select a.pk,a.col1,a.col2,a.col3
from table a inner join table b on a.pk=b.pk where b.col2='value'

we use hbase-1.1.2
with phoneix-4.8.1

Below is the stack trace of the error
---

[main] org.apache.phoenix.iterate.BaseResultIterators: Failed to
execute task during cancel
java.util.concurrent.ExecutionException:
java.lang.ArrayIndexOutOfBoundsException
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at 
org.apache.phoenix.iterate.BaseResultIterators.close(BaseResultIterators.java:882)
        at 
org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:819)
        at 
org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:721)
        at 
org.apache.phoenix.iterate.RoundRobinResultIterator.getIterators(RoundRobinResultIterator.java:176)
        at 
org.apache.phoenix.iterate.RoundRobinResultIterator.next(RoundRobinResultIterator.java:91)
        at 
org.apache.phoenix.iterate.DelegateResultIterator.next(DelegateResultIterator.java:44)
        at 
org.apache.phoenix.compile.UpsertCompiler$2.execute(UpsertCompiler.java:815)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:344)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:332)
        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
        at 
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:331)
        at 
org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(PhoenixStatement.java:1423)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
Caused by: java.lang.ArrayIndexOutOfBoundsException

But re-trying the same query, it got succeded. I'm trying to
understand the root cause of the problem and how to resolve the same

any help is much appreciated.

-- 
*Venkata Subbarayudu Amanchi.*

Reply via email to