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