[ https://issues.apache.org/jira/browse/DRILL-5397?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Volodymyr Vysotskyi resolved DRILL-5397. ---------------------------------------- Resolution: Fixed Fix Version/s: 1.11.0 Fixed in [9972669|https://github.com/apache/drill/commit/9972669df1a78c3d4e60f93b4295ad35b43207f0] > Random Error : Unable to get holder type for minor type [LATE] and mode > [OPTIONAL] > ---------------------------------------------------------------------------------- > > Key: DRILL-5397 > URL: https://issues.apache.org/jira/browse/DRILL-5397 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Data Types, Storage - JSON > Affects Versions: 1.10.0 > Reporter: Rahul Challapalli > Fix For: 1.11.0 > > > git.commit.id.abbrev=38ef562 > The below query did not fail when running sequentially. However when I ran > the test suite at [1], which contains the below query, by using 50 threads > submitting queries concurrently, I hit the below error > {code} > select kvgen(bldgs[0]) from (select kvgen(geo.features[0].location.bldgs) > bldgs from `json_kvgenflatten/nested.json` geo) > Failed with exception > java.sql.SQLException: SYSTEM ERROR: UnsupportedOperationException: Unable to > get holder type for minor type [LATE] and mode [OPTIONAL] > Fragment 0:0 > [Error Id: 67223a94-b24b-4bde-a87a-743b093b23a6 on qa-node183.qa.lab:31010] > (java.lang.UnsupportedOperationException) Unable to get holder type for > minor type [LATE] and mode [OPTIONAL] > org.apache.drill.exec.expr.TypeHelper.getHolderType():602 > org.apache.drill.exec.expr.ClassGenerator.getHolderType():666 > org.apache.drill.exec.expr.ClassGenerator.declare():368 > org.apache.drill.exec.expr.ClassGenerator.declare():364 > > org.apache.drill.exec.expr.EvaluationVisitor$EvalVisitor.visitUnknown():349 > > org.apache.drill.exec.expr.EvaluationVisitor$ConstantFilter.visitUnknown():1320 > org.apache.drill.exec.expr.EvaluationVisitor$CSEFilter.visitUnknown():1026 > org.apache.drill.exec.expr.EvaluationVisitor$CSEFilter.visitUnknown():795 > > org.apache.drill.common.expression.visitors.AbstractExprVisitor.visitNullConstant():162 > > org.apache.drill.exec.expr.EvaluationVisitor$CSEFilter.visitNullConstant():1003 > > org.apache.drill.exec.expr.EvaluationVisitor$CSEFilter.visitNullConstant():795 > org.apache.drill.common.expression.TypedNullConstant.accept():46 > > org.apache.drill.exec.expr.EvaluationVisitor$EvalVisitor.visitFunctionHolderExpression():193 > > org.apache.drill.exec.expr.EvaluationVisitor$ConstantFilter.visitFunctionHolderExpression():1077 > > org.apache.drill.exec.expr.EvaluationVisitor$CSEFilter.visitFunctionHolderExpression():815 > > org.apache.drill.exec.expr.EvaluationVisitor$CSEFilter.visitFunctionHolderExpression():795 > org.apache.drill.common.expression.FunctionHolderExpression.accept():47 > org.apache.drill.exec.expr.EvaluationVisitor.addExpr():104 > org.apache.drill.exec.expr.ClassGenerator.addExpr():261 > > org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchema():458 > org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext():78 > > org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext():135 > org.apache.drill.exec.record.AbstractRecordBatch.next():162 > > org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next():215 > org.apache.drill.exec.physical.impl.BaseRootExec.next():104 > > org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext():81 > org.apache.drill.exec.physical.impl.BaseRootExec.next():94 > org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():232 > org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():226 > java.security.AccessController.doPrivileged():-2 > javax.security.auth.Subject.doAs():422 > org.apache.hadoop.security.UserGroupInformation.doAs():1595 > org.apache.drill.exec.work.fragment.FragmentExecutor.run():226 > org.apache.drill.common.SelfCleaningRunnable.run():38 > java.util.concurrent.ThreadPoolExecutor.runWorker():1142 > java.util.concurrent.ThreadPoolExecutor$Worker.run():617 > java.lang.Thread.run():745 > at > org.apache.drill.jdbc.impl.DrillCursor.nextRowInternally(DrillCursor.java:489) > at > org.apache.drill.jdbc.impl.DrillCursor.loadInitialSchema(DrillCursor.java:561) > at > org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:1895) > at > org.apache.drill.jdbc.impl.DrillResultSetImpl.execute(DrillResultSetImpl.java:61) > at > oadd.org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:473) > at > org.apache.drill.jdbc.impl.DrillMetaImpl.prepareAndExecute(DrillMetaImpl.java:1100) > at > oadd.org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:477) > at > org.apache.drill.jdbc.impl.DrillConnectionImpl.prepareAndExecuteInternal(DrillConnectionImpl.java:180) > at > oadd.org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:109) > at > oadd.org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:130) > at > org.apache.drill.jdbc.impl.DrillStatementImpl.executeQuery(DrillStatementImpl.java:112) > at > org.apache.drill.test.framework.DrillTestJdbc.executeQuery(DrillTestJdbc.java:177) > at > org.apache.drill.test.framework.DrillTestJdbc.run(DrillTestJdbc.java:101) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Caused by: oadd.org.apache.drill.common.exceptions.UserRemoteException: > SYSTEM ERROR: UnsupportedOperationException: Unable to get holder type for > minor type [LATE] and mode [OPTIONAL] > Fragment 0:0 > [Error Id: 67223a94-b24b-4bde-a87a-743b093b23a6 on qa-node183.qa.lab:31010] > (java.lang.UnsupportedOperationException) Unable to get holder type for > minor type [LATE] and mode [OPTIONAL] > org.apache.drill.exec.expr.TypeHelper.getHolderType():602 > org.apache.drill.exec.expr.ClassGenerator.getHolderType():666 > org.apache.drill.exec.expr.ClassGenerator.declare():368 > org.apache.drill.exec.expr.ClassGenerator.declare():364 > > org.apache.drill.exec.expr.EvaluationVisitor$EvalVisitor.visitUnknown():349 > > org.apache.drill.exec.expr.EvaluationVisitor$ConstantFilter.visitUnknown():1320 > org.apache.drill.exec.expr.EvaluationVisitor$CSEFilter.visitUnknown():1026 > org.apache.drill.exec.expr.EvaluationVisitor$CSEFilter.visitUnknown():795 > > org.apache.drill.common.expression.visitors.AbstractExprVisitor.visitNullConstant():162 > > org.apache.drill.exec.expr.EvaluationVisitor$CSEFilter.visitNullConstant():1003 > > org.apache.drill.exec.expr.EvaluationVisitor$CSEFilter.visitNullConstant():795 > org.apache.drill.common.expression.TypedNullConstant.accept():46 > > org.apache.drill.exec.expr.EvaluationVisitor$EvalVisitor.visitFunctionHolderExpression():193 > > org.apache.drill.exec.expr.EvaluationVisitor$ConstantFilter.visitFunctionHolderExpression():1077 > > org.apache.drill.exec.expr.EvaluationVisitor$CSEFilter.visitFunctionHolderExpression():815 > > org.apache.drill.exec.expr.EvaluationVisitor$CSEFilter.visitFunctionHolderExpression():795 > org.apache.drill.common.expression.FunctionHolderExpression.accept():47 > org.apache.drill.exec.expr.EvaluationVisitor.addExpr():104 > org.apache.drill.exec.expr.ClassGenerator.addExpr():261 > > org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchema():458 > org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext():78 > > org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext():135 > org.apache.drill.exec.record.AbstractRecordBatch.next():162 > > org.apache.drill.exec.physical.impl.validate.IteratorValidatorBatchIterator.next():215 > org.apache.drill.exec.physical.impl.BaseRootExec.next():104 > > org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext():81 > org.apache.drill.exec.physical.impl.BaseRootExec.next():94 > org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():232 > org.apache.drill.exec.work.fragment.FragmentExecutor$1.run():226 > java.security.AccessController.doPrivileged():-2 > javax.security.auth.Subject.doAs():422 > org.apache.hadoop.security.UserGroupInformation.doAs():1595 > org.apache.drill.exec.work.fragment.FragmentExecutor.run():226 > org.apache.drill.common.SelfCleaningRunnable.run():38 > java.util.concurrent.ThreadPoolExecutor.runWorker():1142 > java.util.concurrent.ThreadPoolExecutor$Worker.run():617 > java.lang.Thread.run():745 > at > oadd.org.apache.drill.exec.rpc.user.QueryResultHandler.resultArrived(QueryResultHandler.java:123) > at > oadd.org.apache.drill.exec.rpc.user.UserClient.handle(UserClient.java:343) > at > oadd.org.apache.drill.exec.rpc.user.UserClient.handle(UserClient.java:88) > at > oadd.org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:274) > at > oadd.org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:244) > at > oadd.io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:89) > at > oadd.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339) > at > oadd.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324) > at > oadd.io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:254) > at > oadd.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339) > at > oadd.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324) > at > oadd.io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) > at > oadd.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339) > at > oadd.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324) > at > oadd.io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242) > at > oadd.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339) > at > oadd.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324) > at > oadd.io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) > at > oadd.io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339) > at > oadd.io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324) > at > oadd.io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:847) > at > oadd.io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) > at > oadd.io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) > at > oadd.io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) > at > oadd.io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) > at oadd.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) > at > oadd.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111) > ... 1 more > {code} > [1] > https://github.com/mapr/drill-test-framework/tree/master/framework/resources/Functional/json/json_kvgenflatten -- This message was sent by Atlassian JIRA (v6.3.15#6346)