[
https://issues.apache.org/jira/browse/DRILL-3833?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sudheesh Katkam resolved DRILL-3833.
------------------------------------
Resolution: Fixed
Fix Version/s: (was: Future)
1.7.0
Fixed in
[e4725ea|https://github.com/apache/drill/commit/e4725ea53dce58499974be93b3da87388e7df51c]
through DRILL-3714.
> Concurrent Queries Failed Unexpectedly
> --------------------------------------
>
> Key: DRILL-3833
> URL: https://issues.apache.org/jira/browse/DRILL-3833
> Project: Apache Drill
> Issue Type: Bug
> Components: Client - JDBC, Execution - RPC
> Affects Versions: 1.1.0, 1.2.0
> Environment: CentOS release 6.6 (Final)
> Hadoop-2.7.1
> Drill-1.1.0
> Single drillbit on single zookeeper
> Reporter: Yiyi Hu
> Labels: hdfs, jdbc, rpc
> Fix For: 1.7.0
>
> Attachments: drillbit.log
>
>
> Concurrent queries with a relatively large LIMIT size *failed*, where the
> failure occurred randomly.
> To reproduce:
> - Test data: a JSON file test.json (at least 10,000,000 records, two fields
> id<int>, title<string>);
> - Submit 5 queries with 5 separate threads using jdbc, where the query is:
> {panel}
> SELECT id, title FROM dfs.`test.json` LIMIT 10000000;
> {panel}
> - The error message in drillbit.log:
> {noformat}
> 2015-09-24 19:15:15,393 [Client-1] INFO
> o.a.d.j.i.DrillResultSetImpl$ResultsListener - [#4] Query failed:
> org.apache.drill.common.exceptions.UserRemoteException: SYSTEM ERROR:
> ChannelClosedException: Channel closed /192.168.4.201:31010 <-->
> /192.168.4.201:58795.
> Fragment 0:0
> [Error Id: 60a7baa8-a2ed-47e6-b7ca-68afd82c852a on TEST-101:31010]
> at
> org.apache.drill.exec.rpc.user.QueryResultHandler.resultArrived(QueryResultHandler.java:118)
> [drill-java-exec-1.1.0.jar:1.1.0]
> at
> org.apache.drill.exec.rpc.user.UserClient.handleReponse(UserClient.java:111)
> [drill-java-exec-1.1.0.jar:1.1.0]
> at
> org.apache.drill.exec.rpc.BasicClientWithConnection.handle(BasicClientWithConnection.java:47)
> [drill-java-exec-1.1.0.jar:1.1.0]
> at
> org.apache.drill.exec.rpc.BasicClientWithConnection.handle(BasicClientWithConnection.java:32)
> [drill-java-exec-1.1.0.jar:1.1.0]
> at org.apache.drill.exec.rpc.RpcBus.handle(RpcBus.java:61)
> [drill-java-exec-1.1.0.jar:1.1.0]
> at
> org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:233)
> [drill-java-exec-1.1.0.jar:1.1.0]
> at
> org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:205)
> [drill-java-exec-1.1.0.jar:1.1.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]
> at
> io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
> at
> io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
> [netty-transport-4.0.27.Final.jar:4.0.27.Final]
> at
> io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
> [netty-common-4.0.27.Final.jar:4.0.27.Final]
> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
> {noformat}
> - Related to DRILL-3763. But the differences are, the queries were submitted
> through jdbc directly, and there was no external interruption in this case.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)