You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Sudheesh Katkam (JIRA)" <ji...@apache.org> on 2016/09/14 16:20:20 UTC

[jira] [Commented] (DRILL-4890) Right outer join fails

    [ https://issues.apache.org/jira/browse/DRILL-4890?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15490843#comment-15490843 ] 

Sudheesh Katkam commented on DRILL-4890:
----------------------------------------

From the email thread:

Sudheesh said,

{quote}
Hi Kathir,

I tried the same query in embedded mode, and I got a different error.

java.lang.IndexOutOfBoundsException: index: 0, length: 8 (expected: range(0, 0))
	at io.netty.buffer.DrillBuf.checkIndexD(DrillBuf.java:123)
	at io.netty.buffer.DrillBuf.chk(DrillBuf.java:147)
	at io.netty.buffer.DrillBuf.getLong(DrillBuf.java:493)
	at org.apache.drill.exec.vector.BigIntVector$Accessor.get(BigIntVector.java:353)
	at org.apache.drill.exec.vector.BigIntVector$Accessor.getObject(BigIntVector.java:359)
	at org.apache.drill.exec.vector.RepeatedBigIntVector$Accessor.getObject(RepeatedBigIntVector.java:297)
	at org.apache.drill.exec.vector.RepeatedBigIntVector$Accessor.getObject(RepeatedBigIntVector.java:288)
	at org.apache.drill.exec.vector.accessor.GenericAccessor.getObject(GenericAccessor.java:44)
	at org.apache.drill.exec.vector.accessor.BoundCheckingAccessor.getObject(BoundCheckingAccessor.java:148)
	at org.apache.drill.jdbc.impl.TypeConvertingSqlAccessor.getObject(TypeConvertingSqlAccessor.java:795)
	at org.apache.drill.jdbc.impl.AvaticaDrillSqlAccessor.getObject(AvaticaDrillSqlAccessor.java:179)
        ...

In this case, the Java client library is not able to consume the results sent from the server, and the query was CANCELLED (as seen in the query profile, on the web UI). Are you seeing the same?

I am not aware of any workarounds; this seems like a bug to me. Can you open a ticket?

Thank you,
Sudheesh
{quote}

And then, Kathir said,
{quote}
Hi Sudheesh,

Thanks for checking this out.
I do get the same error what you get, when i run Drillbit on my Eclipse and
run the same query from WebUI pointing to my local instance, and on top of
this error, i do get the "QueryDataBatch was released twice" error as well.

But, in drillbit.log of one of the nodes on the cluster, where this failed,
i don't see the IndexOutOfBoundsException. Somehow, the
IndexOutOfBoundsException
log is getting suppressed and only the QueryDataBatch error is logged. But
thats a separate issue.

I did run it from WebUI and its in RUNNING state forever (actually i
started one yesterday and left the tab, its still in RUNNING state)

Sure, I'll file a JIRA and will provide the details here.

Thanks again!

Regards,
Kathir
{quote}

> 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)