[
https://issues.apache.org/jira/browse/DRILL-4890?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15490853#comment-15490853
]
Sudheesh Katkam commented on DRILL-4890:
----------------------------------------
In addition to the bug causing IOOB, I suspect there is a bug in
[DrillResultSetImpl#ResultsListener|https://github.com/apache/drill/blob/master/exec/jdbc/src/main/java/org/apache/drill/jdbc/impl/DrillResultSetImpl.java#L1942].
This might not be handling exceptions properly, causing a batch to be released
twice.
> Right outer join fails
> -----------------------
>
> Key: DRILL-4890
> URL: https://issues.apache.org/jira/browse/DRILL-4890
> Project: Apache Drill
> Issue Type: Bug
> Components: Execution - Data Types, Execution - Flow
> Affects Versions: 1.6.0, 1.8.0
> Reporter: Kathiresan Selvaraj
>
> Hi, A Query with right outer join fails while the inner and left outer joins
> work for the same data. I've replicated the issue with some simple data here
> and this happens in both 1.6.0 and 1.8.0
> *Json file 1: data.json*
> { "name": "Jim","city" : [1,2]}
> *Json file 2: cities.json*
> {id:1,name:"Sendurai"}
> {id:2,name:"NYC"}
> *Queries that work:*
> 1. select a.name,a.city,b.id,b.name from dfs.tmp.`data.json` a left outer
> join dfs.tmp.`cities.json` b on a.city\[0]=b.id
> 2. select a.name,a.city,b.id,b.name from dfs.tmp.`data.json` a join
> dfs.tmp.`cities.json` b on a.city\[0]=b.id
> *Query that fails:*
> select a.name,a.city,b.id,b.name from dfs.tmp.`data.json` a right outer join
> dfs.tmp.`cities.json` b on a.city\[0]=b.id
> *On the server side, i see below error trace :*
> java.lang.IllegalStateException: QueryDataBatch was released twice.
> at
> org.apache.drill.exec.rpc.user.QueryDataBatch.release(QueryDataBatch.java:56)
> \[drill-java-exec-1.6.0.jar:1.6.0]
> at
> org.apache.drill.exec.rpc.user.QueryResultHandler.batchArrived(QueryResultHandler.java:167)
> \[drill-java-exec-1.6.0.jar:1.6.0]
> at
> org.apache.drill.exec.rpc.user.UserClient.handleReponse(UserClient.java:110)
> ~\[drill-java-exec-1.6.0.jar:1.6.0]
> at
> org.apache.drill.exec.rpc.BasicClientWithConnection.handle(BasicClientWithConnection.java:46)
> ~\[drill-rpc-1.6.0.jar:1.6.0]
> at
> org.apache.drill.exec.rpc.BasicClientWithConnection.handle(BasicClientWithConnection.java:31)
> ~\[drill-rpc-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.rpc.RpcBus.handle(RpcBus.java:67)
> ~\[drill-rpc-1.6.0.jar:1.6.0]
> at org.apache.drill.exec.rpc.RpcBus$RequestEvent.run(RpcBus.java:374)
> ~\[drill-rpc-1.6.0.jar:1.6.0]
> at
> org.apache.drill.common.SerializedExecutor$RunnableProcessor.run(SerializedExecutor.java:89)
> \[drill-rpc-1.6.0.jar:1.6.0]
> at
> org.apache.drill.exec.rpc.RpcBus$SameExecutor.execute(RpcBus.java:252)
> \[drill-rpc-1.6.0.jar:1.6.0]
> at
> org.apache.drill.common.SerializedExecutor.execute(SerializedExecutor.java:123)
> \[drill-rpc-1.6.0.jar:1.6.0]
> at
> org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:285)
> \[drill-rpc-1.6.0.jar:1.6.0]
> at
> org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:257)
> \[drill-rpc-1.6.0.jar:1.6.0]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)