[ https://issues.apache.org/jira/browse/DRILL-3241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15223485#comment-15223485 ]
Deneche A. Hakim commented on DRILL-3241: ----------------------------------------- This JIRA is a combination of 2 issues: - DRILL-3714: an OutOfMemoryException is thrown in the RPC layer which causes the channel to close but the query hangs - DRILL-3317: ProtobufLengthDecoder catches the OutOfMemoryException and it's just logged as a WARN. This also causes the query to hang, but the channel is not closed in DRILL-3119 I see a ChannelClosedException which suggests it's more like DRILL-3714. > Query with window function runs out of direct memory and does not report back > to client that it did > --------------------------------------------------------------------------------------------------- > > Key: DRILL-3241 > URL: https://issues.apache.org/jira/browse/DRILL-3241 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Relational Operators > Affects Versions: 1.0.0 > Reporter: Victoria Markman > Assignee: Deneche A. Hakim > Priority: Critical > Fix For: 1.7.0 > > > Even though query run out of memory and was cancelled on the server, client > (sqlline) was never notified of the event and it appears to the user that > query is hung. > Configuration: > Single drillbit configured with: > DRILL_MAX_DIRECT_MEMORY="2G" > DRILL_HEAP="1G" > TPCDS100 parquet files > Query: > {code} > select > sum(ss_quantity) over(partition by ss_store_sk order by ss_sold_date_sk) > from store_sales; > {code} > drillbit.log > {code} > 2015-06-01 21:42:29,514 [BitServer-5] ERROR > o.a.d.exec.rpc.RpcExceptionHandler - Exception in RPC communication. > Connection: /10.10.88.133:31012 <--> /10.10.88.133:38887 (data server). > Closing connection. > io.netty.handler.codec.DecoderException: java.lang.OutOfMemoryError: Direct > buffer memory > at > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:233) > ~[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.7.0_71] > Caused by: java.lang.OutOfMemoryError: Direct buffer memory > at java.nio.Bits.reserveMemory(Bits.java:658) ~[na:1.7.0_71] > at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123) > ~[na:1.7.0_71] > at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:306) > ~[na:1.7.0_71] > 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.reallocate(PoolArena.java:280) > ~[netty-buffer-4.0.27.Final.jar:4.0.27.Final] > at io.netty.buffer.PooledByteBuf.capacity(PooledByteBuf.java:110) > ~[netty-buffer-4.0.27.Final.jar:4.0.27.Final] > at > io.netty.buffer.AbstractByteBuf.ensureWritable(AbstractByteBuf.java:251) > ~[netty-buffer-4.0.27.Final.jar:4.0.27.Final] > at > io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:849) > ~[netty-buffer-4.0.27.Final.jar:4.0.27.Final] > at > io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:841) > ~[netty-buffer-4.0.27.Final.jar:4.0.27.Final] > at > io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:831) > ~[netty-buffer-4.0.27.Final.jar:4.0.27.Final] > at io.netty.buffer.WrappedByteBuf.writeBytes(WrappedByteBuf.java:600) > ~[netty-buffer-4.0.27.Final.jar:4.0.27.Final] > at > io.netty.buffer.UnsafeDirectLittleEndian.writeBytes(UnsafeDirectLittleEndian.java:28) > ~[drill-java-exec-1.0.0-mapr-r1-rebuffed.jar:4.0.27.Final] > at > io.netty.handler.codec.ByteToMessageDecoder$1.cumulate(ByteToMessageDecoder.java:92) > ~[netty-codec-4.0.27.Final.jar:4.0.27.Final] > at > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:227) > ~[netty-codec-4.0.27.Final.jar:4.0.27.Final] > ... 11 common frames omitted > 2015-06-01 21:42:29,516 [BitClient-1] ERROR > o.a.d.exec.rpc.RpcExceptionHandler - Exception in RPC communication. > Connection: /10.10.88.133:38887 <--> /10.10.88.133:31012 (data client). > Closing connection. > java.io.IOException: syscall:read(...)() failed: Connection reset by peer > 2015-06-01 21:42:29,516 [BitClient-1] INFO > o.a.drill.exec.rpc.data.DataClient - Channel closed /10.10.88.133:38887 <--> > /10.10.88.133:31012. > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)