You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Ramana Inukonda Nagaraj (JIRA)" <ji...@apache.org> on 2015/04/01 20:23:57 UTC

[jira] [Created] (DRILL-2654) Shutdown when queries are running results in an IllegalStateException

Ramana Inukonda Nagaraj created DRILL-2654:
----------------------------------------------

             Summary: Shutdown when queries are running results in an IllegalStateException
                 Key: DRILL-2654
                 URL: https://issues.apache.org/jira/browse/DRILL-2654
             Project: Apache Drill
          Issue Type: Bug
            Reporter: Ramana Inukonda Nagaraj


Scenario: long running TPCH queries followed by a shutdown/restart of all drillbits results in below exceptions in drillbit.out

{code}
Caused by: java.lang.IllegalStateException: Failure while trying to close allocator: Child level allocators not closed. Stack trace: 
		java.lang.Thread.getStackTrace(Thread.java:1588)
		org.apache.drill.exec.memory.TopLevelAllocator.getChildAllocator(TopLevelAllocator.java:129)
		org.apache.drill.exec.ops.FragmentContext.<init>(FragmentContext.java:111)
		org.apache.drill.exec.work.fragment.NonRootFragmentManager.<init>(NonRootFragmentManager.java:55)
		org.apache.drill.exec.work.batch.ControlHandlerImpl.startNewRemoteFragment(ControlHandlerImpl.java:136)
		org.apache.drill.exec.work.batch.ControlHandlerImpl.handle(ControlHandlerImpl.java:98)
		org.apache.drill.exec.rpc.control.ControlServer.handle(ControlServer.java:60)
		org.apache.drill.exec.rpc.control.ControlServer.handle(ControlServer.java:38)
		org.apache.drill.exec.rpc.RpcBus.handle(RpcBus.java:57)
		org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:194)
		org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:173)
		io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89)
		io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
		io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
		io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
		io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
		io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
		io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:161)
		io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
		io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
		io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
		io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333)
		io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319)
		io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787)
		io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:130)
		io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
		io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
		io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
		io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
		io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
		java.lang.Thread.run(Thread.java:744)
{code}

Currently looks like the restart/shutdown does not really care about any queries being executed or waiting for them to complete. After DRILL-2547 we wait for a short period of time but thats not enough for long running queries. 

We may need to make this a feature and clearly define shutdown/restart. 



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