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

Gerald Sangudi updated PHOENIX-4917:
------------------------------------
    Description: 
This bug was introduced in the fix for PHOENIX-4791.

When projecting array elements in hash join, we now generate both 
ProjectedTupleValue and MultiKeyTupleValue. Before the fix for PHOENIX-4791, 
hash join was only generating ProjectedTupleValue, and there were two lines of 
code with class casts that reflected this assumption. The fix is to handle both 
ProjectedTupleValue and MultiKeyTupleValue, while continuing to propagate the 
array cell as in PHOENIX-4791.

 

The stack trace with the ClassCastException:

Caused by: 
org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.DoNotRetryIOException):
 org.apache.hadoop.hbase.DoNotRetryIOException: 
GENO_DOSE,,1537598769044.1a6cb8853b036c59e7515d8e876e28c5.: 
org.apache.phoenix.schema.tuple.MultiKeyValueTuple cannot be cast to 
org.apache.phoenix.execute.TupleProjector$ProjectedValueTuple

at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)

at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)

at 
org.apache.phoenix.coprocessor.HashJoinRegionScanner.nextRaw(HashJoinRegionScanner.java:300)

at 
org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)

at 
org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)

at 
org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:294)

at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2633)

at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2837)

at 
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:34950)

at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2339)

at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:123)

at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:188)

at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:168)

Caused by: java.lang.ClassCastException: 
org.apache.phoenix.schema.tuple.MultiKeyValueTuple cannot be cast to 
org.apache.phoenix.execute.TupleProjector$ProjectedValueTuple

at 
org.apache.phoenix.coprocessor.HashJoinRegionScanner.processResults(HashJoinRegionScanner.java:220)

at 
org.apache.phoenix.coprocessor.HashJoinRegionScanner.nextRaw(HashJoinRegionScanner.java:294)

  was:
This bug was introduced in the fix for PHOENIX-4791.

When projecting array elements in hash join, we now generate both 
ProjectedTupleValue and MultiKeyTupleValue. Previously, we were only generating 
ProjectedTupleValue, and there are two lines of code that contain this 
assumption in class casts. The fix is to merge into the MultiKeyTupleValue, 
while propagating the array cell as in PHOENIX-4791.

 

The stack trace with the ClassCastException:

Caused by: 
org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.DoNotRetryIOException):
 org.apache.hadoop.hbase.DoNotRetryIOException: 
GENO_DOSE,,1537598769044.1a6cb8853b036c59e7515d8e876e28c5.: 
org.apache.phoenix.schema.tuple.MultiKeyValueTuple cannot be cast to 
org.apache.phoenix.execute.TupleProjector$ProjectedValueTuple

at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)

at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)

at 
org.apache.phoenix.coprocessor.HashJoinRegionScanner.nextRaw(HashJoinRegionScanner.java:300)

at 
org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)

at 
org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)

at 
org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:294)

at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2633)

at 
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2837)

at 
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:34950)

at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2339)

at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:123)

at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:188)

at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:168)

Caused by: java.lang.ClassCastException: 
org.apache.phoenix.schema.tuple.MultiKeyValueTuple cannot be cast to 
org.apache.phoenix.execute.TupleProjector$ProjectedValueTuple

at 
org.apache.phoenix.coprocessor.HashJoinRegionScanner.processResults(HashJoinRegionScanner.java:220)

at 
org.apache.phoenix.coprocessor.HashJoinRegionScanner.nextRaw(HashJoinRegionScanner.java:294)


> ClassCastException when projecting array elements in hash join
> --------------------------------------------------------------
>
>                 Key: PHOENIX-4917
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4917
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.15.0, 4.14.1
>            Reporter: Gerald Sangudi
>            Assignee: Gerald Sangudi
>            Priority: Major
>             Fix For: 4.15.0, 4.14.1
>
>         Attachments: PHOENIX-4917.patch
>
>
> This bug was introduced in the fix for PHOENIX-4791.
> When projecting array elements in hash join, we now generate both 
> ProjectedTupleValue and MultiKeyTupleValue. Before the fix for PHOENIX-4791, 
> hash join was only generating ProjectedTupleValue, and there were two lines 
> of code with class casts that reflected this assumption. The fix is to handle 
> both ProjectedTupleValue and MultiKeyTupleValue, while continuing to 
> propagate the array cell as in PHOENIX-4791.
>  
> The stack trace with the ClassCastException:
> Caused by: 
> org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.DoNotRetryIOException):
>  org.apache.hadoop.hbase.DoNotRetryIOException: 
> GENO_DOSE,,1537598769044.1a6cb8853b036c59e7515d8e876e28c5.: 
> org.apache.phoenix.schema.tuple.MultiKeyValueTuple cannot be cast to 
> org.apache.phoenix.execute.TupleProjector$ProjectedValueTuple
> at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:96)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:62)
> at 
> org.apache.phoenix.coprocessor.HashJoinRegionScanner.nextRaw(HashJoinRegionScanner.java:300)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at 
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:294)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2633)
> at 
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2837)
> at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:34950)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2339)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:123)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:188)
> at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:168)
> Caused by: java.lang.ClassCastException: 
> org.apache.phoenix.schema.tuple.MultiKeyValueTuple cannot be cast to 
> org.apache.phoenix.execute.TupleProjector$ProjectedValueTuple
> at 
> org.apache.phoenix.coprocessor.HashJoinRegionScanner.processResults(HashJoinRegionScanner.java:220)
> at 
> org.apache.phoenix.coprocessor.HashJoinRegionScanner.nextRaw(HashJoinRegionScanner.java:294)



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

Reply via email to