You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by venkata subbarayudu <av...@gmail.com> on 2016/12/11 16:07:56 UTC

phoenix upsert select query fails with : java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException

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.*

Re: phoenix upsert select query fails with : java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException

Posted by venkata subbarayudu <av...@gmail.com>.
Below is the complete stack trace

INFO [main] org.apache.phoenix.iterate.BaseResultIterators: Failed to
execute task during cancel
java.util.concurrent.ExecutionException:
java.lang.ArrayIndexOutOfBoundsException: 45
    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: 45*
    at org.apache.phoenix.util.ByteUtil.vlongFromBytes(ByteUtil.java:341)
    at org.apache.phoenix.util.ByteUtil.vintFromBytes(ByteUtil.java:320)
    at
org.apache.phoenix.schema.KeyValueSchema.next(KeyValueSchema.java:209)
    at
org.apache.phoenix.schema.KeyValueSchema.iterator(KeyValueSchema.java:165)
    at
org.apache.phoenix.schema.KeyValueSchema.iterator(KeyValueSchema.java:171)
    at
org.apache.phoenix.schema.KeyValueSchema.iterator(KeyValueSchema.java:175)
    at
org.apache.phoenix.expression.ProjectedColumnExpression.evaluate(ProjectedColumnExpression.java:114)
    at
org.apache.phoenix.expression.LongAddExpression.evaluate(LongAddExpression.java:43)
    at
org.apache.phoenix.expression.CoerceExpression.evaluate(CoerceExpression.java:148)
    at
org.apache.phoenix.compile.ExpressionProjector.getValue(ExpressionProjector.java:69)
    at
org.apache.phoenix.jdbc.PhoenixResultSet.getBytes(PhoenixResultSet.java:308)
    at
org.apache.phoenix.compile.UpsertCompiler.upsertSelect(UpsertCompiler.java:197)
    at
org.apache.phoenix.compile.UpsertCompiler.access$000(UpsertCompiler.java:115)
    at
org.apache.phoenix.compile.UpsertCompiler$UpsertingParallelIteratorFactory.mutate(UpsertCompiler.java:259)
    at
org.apache.phoenix.compile.MutatingParallelIteratorFactory.newIterator(MutatingParallelIteratorFactory.java:59)
    at
org.apache.phoenix.iterate.ParallelIterators$1.call(ParallelIterators.java:114)
    at
org.apache.phoenix.iterate.ParallelIterators$1.call(ParallelIterators.java:106)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at
org.apache.phoenix.job.JobManager$InstrumentedJobFutureTask.run(JobManager.java:183)
    at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)



On Mon, Dec 12, 2016 at 1:43 AM, Josh Elser <jo...@gmail.com> wrote:

> What's the rest of the stacktrace? You cut off the cause.
>
> venkata subbarayudu wrote:
>
>>
>> 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
>> <http://a.pk>,a.col1,a.col2,a.col3 from table a inner join table b on
>> a.pk <http://a.pk>=b.pk <http://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.ArrayIndexOutOfBound
>> sException
>>         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(BaseRes
>> ultIterators.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.getItera
>> tors(RoundRobinResultIterator.java:176)
>>         at org.apache.phoenix.iterate.RoundRobinResultIterator.next(Rou
>> ndRobinResultIterator.java:91)
>>         at org.apache.phoenix.iterate.DelegateResultIterator.next(Deleg
>> ateResultIterator.java:44)
>>         at org.apache.phoenix.compile.UpsertCompiler$2.execute(UpsertCo
>> mpiler.java:815)
>>         at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixState
>> ment.java:344)
>>         at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixState
>> ment.java:332)
>>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>>         at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(Pho
>> enixStatement.java:331)
>>         at org.apache.phoenix.jdbc.PhoenixStatement.executeUpdate(Phoen
>> ixStatement.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(UserGro
>> upInformation.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.*/
>>
>


-- 
*Venkata Subbarayudu Amanchi.*

Re: phoenix upsert select query fails with : java.util.concurrent.ExecutionException: java.lang.ArrayIndexOutOfBoundsException

Posted by Josh Elser <jo...@gmail.com>.
What's the rest of the stacktrace? You cut off the cause.

venkata subbarayudu wrote:
>
> 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
> <http://a.pk>,a.col1,a.col2,a.col3 from table a inner join table b on
> a.pk <http://a.pk>=b.pk <http://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.*/