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