You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Alex Khomchenko (JIRA)" <ji...@apache.org> on 2016/09/29 15:07:20 UTC

[jira] [Updated] (DRILL-4915) IndexOutOfBoundsException while schema contains different types

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

Alex Khomchenko updated DRILL-4915:
-----------------------------------
    Attachment: test3.json
                test2.json
                test1.json

Sample files

> IndexOutOfBoundsException while schema contains different types
> ---------------------------------------------------------------
>
>                 Key: DRILL-4915
>                 URL: https://issues.apache.org/jira/browse/DRILL-4915
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.8.0
>         Environment: mac os x 10.12
>            Reporter: Alex Khomchenko
>         Attachments: test1.json, test2.json, test3.json
>
>
> Good day.
> First of all - thank you for a great tool!
> I apologise for a bad title for this issue, I hope you will fix it to correct one.
> I've found this issue while was running CTAS on S3.
> Given next 3 files in "/drill-error":
> test1.json:
> {
>     "id": "first",
>     "payload": {
>         "something": "somewhere",
>         "nested": {
>             "foo": 42
>         }
>     }
> }
> test2.json:
> {
>     "id": "second",
>     "payload": {
>         "something": "somewhere"
>     }
> }
> test3.json:
> {
>     "id": "third",
>     "payload": {
>         "something": "somewhere",
>         "nested": {
>             "foo": "42"
>         }
>     }
> }
> "select * from dfs.`/drill-error`;" returns next:
> +---------+--------------------------------------------------------+
> |   id    |                        payload                         |
> +---------+--------------------------------------------------------+
> | first   | {"something":"somewhere","nested":{"foo":42}}          |
> | second  | {"something":"somewhere","nested":{}}                  |
> | third   | {"something":"somewhere","nested":{"foo":8589934592}}  |
> +---------+--------------------------------------------------------+
> While "create table test (id, payload) as select t.id, t.payload from dfs.`//drill-error` as t;" fails with:
> java.sql.SQLException: SYSTEM ERROR: IndexOutOfBoundsException: index: 0, length: 1 (expected: range(0, 0))
> Fragment 0:0
> [Error Id: 63aea870-c78b-41cb-bb1b-cdfd45420291 on pc:31010]
>         at org.apache.drill.jdbc.impl.DrillCursor.nextRowInternally(DrillCursor.java:247)
>         at org.apache.drill.jdbc.impl.DrillCursor.loadInitialSchema(DrillCursor.java:290)
>         at org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:1933)
>         at org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:73)
>         at net.hydromatic.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:404)
>         at net.hydromatic.avatica.AvaticaStatement.executeQueryInternal(AvaticaStatement.java:351)
>         at net.hydromatic.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:338)
>         at net.hydromatic.avatica.AvaticaStatement.execute(AvaticaStatement.java:69)
>         at org.apache.drill.jdbc.impl.DrillStatementImpl.execute(DrillStatementImpl.java:101)
>         at sqlline.Commands.execute(Commands.java:841)
>         at sqlline.Commands.sql(Commands.java:751)
>         at sqlline.SqlLine.dispatch(SqlLine.java:746)
>         at sqlline.SqlLine.begin(SqlLine.java:621)
>         at sqlline.SqlLine.start(SqlLine.java:375)
>         at sqlline.SqlLine.main(SqlLine.java:268)
> Caused by: org.apache.drill.common.exceptions.UserRemoteException: SYSTEM ERROR: IndexOutOfBoundsException: index: 0, length: 1 (expe
> cted: range(0, 0))
> Fragment 0:0
> [Error Id: 63aea870-c78b-41cb-bb1b-cdfd45420291 on pc:31010]
>         at org.apache.drill.exec.rpc.user.QueryResultHandler.resultArrived(QueryResultHandler.java:123)
>         at org.apache.drill.exec.rpc.user.UserClient.handleReponse(UserClient.java:134)
>         at org.apache.drill.exec.rpc.BasicClientWithConnection.handle(BasicClientWithConnection.java:46)
>         at org.apache.drill.exec.rpc.BasicClientWithConnection.handle(BasicClientWithConnection.java:31)
>         at org.apache.drill.exec.rpc.RpcBus.handle(RpcBus.java:65)
>         at org.apache.drill.exec.rpc.RpcBus$RequestEvent.run(RpcBus.java:363)
>         at org.apache.drill.common.SerializedExecutor$RunnableProcessor.run(SerializedExecutor.java:89)
>         at org.apache.drill.exec.rpc.RpcBus$SameExecutor.execute(RpcBus.java:240)
>         at org.apache.drill.common.SerializedExecutor.execute(SerializedExecutor.java:123)
>         at org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:274)
>         at org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:245)
>         at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>         at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:254)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>         at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>         at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)
>         at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)
>         at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:847)
>         at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
>         at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
>         at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
>         at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
>         at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
>         at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
>         at java.lang.Thread.run(Thread.java:745)
> I've traced an issue. It happens at NullableBigIntReaderImpl.isSet



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