drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hao Zhu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-3110) org.apache.drill.exec.rpc.RpcException: Data not accepted downstream.
Date Fri, 15 May 2015 23:37:00 GMT

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

Hao Zhu commented on DRILL-3110:
--------------------------------

This time this error is due to OOM of direct memory on one node:

{code}
2015-05-15 23:29:14,590 [BitServer-7] ERROR o.a.d.exec.rpc.RpcExceptionHandler - Exception
in RPC communication.  Connection: /10.0.0.28:31012 <--> /10.0.0.31:38972 (data server).
 Closing connection.
io.netty.handler.codec.DecoderException: java.lang.OutOfMemoryError: Direct buffer memory
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:346)
~[netty-codec-4.0.27.Final.jar:4.0.27.Final]
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:229)
~[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.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:618)
[netty-transport-native-epoll-4.0.27.Final-linux-x86_64.jar:na]
        at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:329) [netty-transport-native-epoll-4.0.27.Final-linux-x86_64.jar:na]
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:250) [netty-transport-native-epoll-4.0.27.Final-linux-x86_64.jar:na]
        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]
Caused by: java.lang.OutOfMemoryError: Direct buffer memory
        at java.nio.Bits.reserveMemory(Bits.java:658) ~[na:1.8.0_45]
        at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123) ~[na:1.8.0_45]
        at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311) ~[na:1.8.0_45]
        at io.netty.buffer.PoolArena$DirectArena.newChunk(PoolArena.java:437) ~[netty-buffer-4.0.27.Final.jar:4.0.27.Final]
        at io.netty.buffer.PoolArena.allocateNormal(PoolArena.java:179) ~[netty-buffer-4.0.27.Final.jar:4.0.27.Final]
        at io.netty.buffer.PoolArena.allocate(PoolArena.java:168) ~[netty-buffer-4.0.27.Final.jar:4.0.27.Final]
        at io.netty.buffer.PoolArena.allocate(PoolArena.java:98) ~[netty-buffer-4.0.27.Final.jar:4.0.27.Final]
        at io.netty.buffer.PooledByteBufAllocatorL.newDirectBuffer(PooledByteBufAllocatorL.java:140)
~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:4.0.27.Final]
        at io.netty.buffer.PooledByteBufAllocatorL.directBuffer(PooledByteBufAllocatorL.java:171)
~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:4.0.27.Final]
        at org.apache.drill.exec.memory.TopLevelAllocator.buffer(TopLevelAllocator.java:98)
~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
        at org.apache.drill.exec.memory.TopLevelAllocator.buffer(TopLevelAllocator.java:106)
~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
        at org.apache.drill.exec.rpc.ProtobufLengthDecoder.decode(ProtobufLengthDecoder.java:83)
~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
        at org.apache.drill.exec.rpc.data.DataProtobufLengthDecoder$Server.decode(DataProtobufLengthDecoder.java:52)
~[drill-java-exec-1.0.0-SNAPSHOT-rebuffed.jar:1.0.0-SNAPSHOT]
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:315)
~[netty-codec-4.0.27.Final.jar:4.0.27.Final]
        ... 12 common frames omitted
{code}

> org.apache.drill.exec.rpc.RpcException: Data not accepted downstream.
> ---------------------------------------------------------------------
>
>                 Key: DRILL-3110
>                 URL: https://issues.apache.org/jira/browse/DRILL-3110
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Flow
>    Affects Versions: 1.0.0
>         Environment: > select commit_id from sys.version;
> +------------+
> | commit_id  |
> +------------+
> | 583ca4a95df2c45b5ba20b517cb1aeed48c7548e |
> +------------+
> 1 row selected (0.098 seconds)
>            Reporter: Hao Zhu
>            Assignee: Chris Westin
>
> Joining two 1G CSV tables resulting in below error:
> {code}
> > select a.* from dfs.root.`user/hive/warehouse/passwords_csv_big` a, dfs.root.`user/hive/warehouse/passwords_csv_big`
b
> . . . . . . . . . . . . . . . . . . . . . . .> where a.columns[1]=b.columns[1] limit
5;
> +------------+
> |  columns   |
> +------------+
> | ["1","787148","92921","158596","17776","896094","2"] |
> | ["1","787148","10930","348699","534058","778852","2"] |
> | ["1","787148","10930","348699","534058","778852","2"] |
> | ["1","787148","10930","348699","534058","778852","2"] |
> | ["1","787148","10930","348699","534058","778852","2"] |
> java.lang.RuntimeException: java.sql.SQLException: SYSTEM ERROR: org.apache.drill.exec.rpc.RpcException:
Data not accepted downstream.
> Fragment 5:15
> [Error Id: dd25cee9-1d1d-4658-9a83-cdefcafb7031 on h3.poc.com:31010]
>   (org.apache.drill.exec.rpc.RpcException) Data not accepted downstream.
>     org.apache.drill.exec.ops.StatusHandler.success():54
>     org.apache.drill.exec.ops.StatusHandler.success():29
>     org.apache.drill.exec.rpc.ListeningCommand$DeferredRpcOutcome.success():55
>     org.apache.drill.exec.rpc.ListeningCommand$DeferredRpcOutcome.success():46
>     org.apache.drill.exec.rpc.data.DataTunnel$ThrottlingOutcomeListener.success():133
>     org.apache.drill.exec.rpc.data.DataTunnel$ThrottlingOutcomeListener.success():116
>     org.apache.drill.exec.rpc.CoordinationQueue$RpcListener.set():98
>     org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode():243
>     org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode():188
>     io.netty.handler.codec.MessageToMessageDecoder.channelRead():89
>     io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead():339
>     io.netty.channel.AbstractChannelHandlerContext.fireChannelRead():324
>     io.netty.handler.timeout.IdleStateHandler.channelRead():254
>     io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead():339
>     io.netty.channel.AbstractChannelHandlerContext.fireChannelRead():324
>     io.netty.handler.codec.MessageToMessageDecoder.channelRead():103
>     io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead():339
>     io.netty.channel.AbstractChannelHandlerContext.fireChannelRead():324
>     io.netty.handler.codec.ByteToMessageDecoder.channelRead():242
>     io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead():339
>     io.netty.channel.AbstractChannelHandlerContext.fireChannelRead():324
>     io.netty.channel.ChannelInboundHandlerAdapter.channelRead():86
>     io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead():339
>     io.netty.channel.AbstractChannelHandlerContext.fireChannelRead():324
>     io.netty.channel.DefaultChannelPipeline.fireChannelRead():847
>     io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady():618
>     io.netty.channel.epoll.EpollEventLoop.processReady():329
>     io.netty.channel.epoll.EpollEventLoop.run():250
>     io.netty.util.concurrent.SingleThreadEventExecutor$2.run():111
>     java.lang.Thread.run():745
>         at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2514)
>         at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2148)
>         at sqlline.SqlLine.print(SqlLine.java:1809)
>         at sqlline.SqlLine$Commands.execute(SqlLine.java:3766)
>         at sqlline.SqlLine$Commands.sql(SqlLine.java:3663)
>         at sqlline.SqlLine.dispatch(SqlLine.java:889)
>         at sqlline.SqlLine.begin(SqlLine.java:763)
>         at sqlline.SqlLine.start(SqlLine.java:498)
>         at sqlline.SqlLine.main(SqlLine.java:460)
> {code}
> It can be workarounded by changing drill.exec.buffer.size.
> My understanding is "drill.exec.buffer.size" can only change the performance, but it
should not cause SQL to fail,right?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message