drill-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sudheesh Katkam <skat...@maprtech.com>
Subject Re: Right outer join fails
Date Wed, 14 Sep 2016 00:17:35 GMT
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 <https://issues.apache.org/jira/browse/DRILL>?

Thank you,
Sudheesh

> On Sep 13, 2016, at 7:10 AM, Kathiresan S <kathiresanselvaraj@gmail.com> wrote:
> 
> ​Hi,
> 
> Additional info on this. Array column ('city' in the example) is the issue.
> 
> 1. When i select the just the first occurrence of the array column, the
> query works fine
> 
> select a.name,a.city[0],b.name from dfs.tmp.`data.json` a right join
> dfs.tmp.`cities.json` b on a.city[0]=b.id
> 
> Result
> Jim 1 Sendurai
> null null NYC
> 
> 
> 2. And when i do a repeated_count on the array column, it returns -2 on the
> second row
> 
> select a.name,repeated_count(a.city),b.name from dfs.tmp.`data.json` a
> right join dfs.tmp.`cities.json` b on a.city[0]=b.id
> 
> Result
> Jim 2 Sendurai
> null -2 NYC
> 
> Any idea/work around for this issue would be highly appreciated
> 
> Thanks,
> Kathir
> ​
> 
> On Sat, Sep 10, 2016 at 9:56 PM, Kathiresan S <kathiresanselvaraj@gmail.com>
> wrote:
> 
>> 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]
>>        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(
>> MessageToMessageDecoder.java:89) [netty-codec-4.0.27.Final.jar:
>> 4.0.27.Final]
>>        at io.netty.channel.AbstractChannelHandlerContext.
>> invokeChannelRead(AbstractChannelHandlerContext.java:339)
>> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
>>        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
>> AbstractChannelHandlerContext.java:324) [netty-transport-4.0.27.Final.
>> jar:4.0.27.Final]
>>        at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:254)
>> [netty-handler-4.0.27.Final.jar:4.0.27.Final]
>>        at io.netty.channel.AbstractChannelHandlerContext.
>> invokeChannelRead(AbstractChannelHandlerContext.java:339)
>> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
>>        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
>> AbstractChannelHandlerContext.java:324) [netty-transport-4.0.27.Final.
>> jar:4.0.27.Final]
>>        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(
>> MessageToMessageDecoder.java:103) [netty-codec-4.0.27.Final.jar:
>> 4.0.27.Final]
>>        at io.netty.channel.AbstractChannelHandlerContext.
>> invokeChannelRead(AbstractChannelHandlerContext.java:339)
>> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
>>        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
>> AbstractChannelHandlerContext.java:324) [netty-transport-4.0.27.Final.
>> jar:4.0.27.Final]
>>        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)
>> [netty-codec-4.0.27.Final.jar:4.0.27.Final]
>>        at io.netty.channel.AbstractChannelHandlerContext.
>> invokeChannelRead(AbstractChannelHandlerContext.java:339)
>> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
>>        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
>> AbstractChannelHandlerContext.java:324) [netty-transport-4.0.27.Final.
>> jar:4.0.27.Final]
>>        at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(
>> ChannelInboundHandlerAdapter.java:86) [netty-transport-4.0.27.Final.
>> jar:4.0.27.Final]
>>        at io.netty.channel.AbstractChannelHandlerContext.
>> invokeChannelRead(AbstractChannelHandlerContext.java:339)
>> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
>>        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(
>> AbstractChannelHandlerContext.java:324) [netty-transport-4.0.27.Final.
>> jar:4.0.27.Final]
>>        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(
>> DefaultChannelPipeline.java:847) [netty-transport-4.0.27.Final.
>> jar:4.0.27.Final]
>> 
>> Thanks,
>> Kathir
>> 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message