You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Ben Becker (JIRA)" <ji...@apache.org> on 2013/11/16 01:01:21 UTC

[jira] [Updated] (DRILL-299) OutgoingRecordBatch trying to get RecordCount on incoming batch with outcome NOT_YET

     [ https://issues.apache.org/jira/browse/DRILL-299?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ben Becker updated DRILL-299:
-----------------------------

    Attachment: DRILL-299.patch

There was an issue in initializeBatch() and flush() which could attempt to access the record batch in an invalid state.  The proposed patch uses fixed allocations to avoid this case.

Additionally, OutgoingRecordBatch now uses the new VectorAccessible interface instead of RecordBatch.

> OutgoingRecordBatch trying to get RecordCount on incoming batch with outcome NOT_YET
> ------------------------------------------------------------------------------------
>
>                 Key: DRILL-299
>                 URL: https://issues.apache.org/jira/browse/DRILL-299
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Steven Phillips
>            Assignee: Ben Becker
>         Attachments: DRILL-299.patch
>
>
> I think this slipped in because TestHashToRandomExchange is currently ignored. This must have accidently been checked in as part of some other jira.
> Removing the @Ignore, and running the test, gives this exception:
> java.lang.IllegalStateException: You tried to do a batch data read operation when you were in a state of NOT_YET.  You can only do this type of operation when you are in a state of OK or OK_NEW_SCHEMA.
> 	org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.validateReadState(IteratorValidatorBatchIterator.java:48) ~[classes/:na]
> 	org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.getRecordCount(IteratorValidatorBatchIterator.java:71) ~[classes/:na]
> 	org.apache.drill.exec.physical.impl.partitionsender.OutgoingRecordBatch.initializeBatch(OutgoingRecordBatch.java:153) ~[classes/:na]
> 	org.apache.drill.exec.physical.impl.partitionsender.OutgoingRecordBatch.<init>(OutgoingRecordBatch.java:74) ~[classes/:na]
> 	org.apache.drill.exec.physical.impl.partitionsender.PartitionSenderRootExec.<init>(PartitionSenderRootExec.java:68) ~[classes/:na]
> 	org.apache.drill.exec.physical.impl.partitionsender.PartitionSenderCreator.getRoot(PartitionSenderCreator.java:36) ~[classes/:na]
> 	org.apache.drill.exec.physical.impl.ImplCreator.visitHashPartitionSender(ImplCreator.java:146) ~[classes/:na]
> 	org.apache.drill.exec.physical.impl.ImplCreator.visitHashPartitionSender(ImplCreator.java:57) ~[classes/:na]
> 	org.apache.drill.exec.physical.config.HashPartitionSender.accept(HashPartitionSender.java:65) ~[classes/:na]
> 	org.apache.drill.exec.physical.impl.ImplCreator.getExec(ImplCreator.java:207) ~[classes/:na]
> 	org.apache.drill.exec.work.batch.BitComHandlerImpl.startNewRemoteFragment(BitComHandlerImpl.java:119) [classes/:na]
> 	org.apache.drill.exec.work.batch.BitComHandlerImpl.handle(BitComHandlerImpl.java:88) [classes/:na]
> 	org.apache.drill.exec.rpc.bit.BitServer.handle(BitServer.java:59) [classes/:na]
> 	org.apache.drill.exec.rpc.bit.BitServer.handle(BitServer.java:37) [classes/:na]
> 	org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:142) [classes/:na]
> 	org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:127) [classes/:na]
> 	io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) [netty-codec-4.0.7.Final.jar:na]
> 	io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:334) [netty-transport-4.0.7.Final.jar:na]
> 	io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:320) [netty-transport-4.0.7.Final.jar:na]
> 	io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) [netty-codec-4.0.7.Final.jar:na]
> 	io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:334) [netty-transport-4.0.7.Final.jar:na]
> 	io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:320) [netty-transport-4.0.7.Final.jar:na]
> 	io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173) [netty-codec-4.0.7.Final.jar:na]
> 	io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:334) [netty-transport-4.0.7.Final.jar:na]
> 	io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:320) [netty-transport-4.0.7.Final.jar:na]
> 	io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785) [netty-transport-4.0.7.Final.jar:na]
> 	io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:100) [netty-transport-4.0.7.Final.jar:na]
> 	io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:497) [netty-transport-4.0.7.Final.jar:na]
> 	io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:465) [netty-transport-4.0.7.Final.jar:na]
> 	io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:359) [netty-transport-4.0.7.Final.jar:na]
> 	io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [netty-common-4.0.7.Final.jar:na]
> 	java.lang.Thread.run(Thread.java:722) [na:1.7.0_21]



--
This message was sent by Atlassian JIRA
(v6.1#6144)