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

Serhii Harnyk reassigned DRILL-5164:
------------------------------------

    Assignee: Serhii Harnyk

> equi-join query results in CompileException
> -------------------------------------------
>
>                 Key: DRILL-5164
>                 URL: https://issues.apache.org/jira/browse/DRILL-5164
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Codegen
>    Affects Versions: 1.9.0
>            Reporter: Khurram Faraaz
>            Assignee: Serhii Harnyk
>            Priority: Critical
>         Attachments: manyColsInJson.json
>
>
> Drill 1.9.0 
> git commit ID : 4c1b420b
> 4 node CentOS cluster
> JSON file has 4095 keys (columns)
> {noformat}
> 0: jdbc:drill:schema=dfs.tmp> select * from `manyColsInJson.json` t1, 
> `manyColsInJson.json` t2 where t1.key2000 = t2.key2000;
> Error: SYSTEM ERROR: CompileException: File 
> 'org.apache.drill.exec.compile.DrillJavaFileObject[HashJoinProbeGen294.java]',
>  Line 16397, Column 17: HashJoinProbeGen294.java:16397: error: code too large
>     public void doSetup(FragmentContext context, VectorContainer buildBatch, 
> RecordBatch probeBatch, RecordBatch outgoing)
>                 ^ (compiler.err.limit.code)
> Fragment 0:0
> [Error Id: 7d0efa7e-e183-4c40-939a-4908699f94bf on centos-01.qa.lab:31010] 
> (state=,code=0)
> {noformat}
> Stack trace from drillbit.log
> {noformat}
> 2016-12-26 09:52:11,321 [279f17fd-c8f0-5d18-1124-76099f0a5cc8:frag:0:0] ERROR 
> o.a.d.e.w.fragment.FragmentExecutor - SYSTEM ERROR: CompileException: File 
> 'org.apache.drill.exec.compile.DrillJavaFileObject[HashJoinProbeGen294.java]',
>  Line 16397, Column 17: HashJoinProbeGen294.java:16397: error: code too large
>     public void doSetup(FragmentContext context, VectorContainer buildBatch, 
> RecordBatch probeBatch, RecordBatch outgoing)
>                 ^ (compiler.err.limit.code)
> Fragment 0:0
> [Error Id: 7d0efa7e-e183-4c40-939a-4908699f94bf on centos-01.qa.lab:31010]
> org.apache.drill.common.exceptions.UserException: SYSTEM ERROR: 
> CompileException: File 
> 'org.apache.drill.exec.compile.DrillJavaFileObject[HashJoinProbeGen294.java]',
>  Line 16397, Column 17: HashJoinProbeGen294.java:16397: error: code too large
>     public void doSetup(FragmentContext context, VectorContainer buildBatch, 
> RecordBatch probeBatch, RecordBatch outgoing)
>                 ^ (compiler.err.limit.code)
> Fragment 0:0
> [Error Id: 7d0efa7e-e183-4c40-939a-4908699f94bf on centos-01.qa.lab:31010]
>         at 
> org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:543)
>  ~[drill-common-1.9.0.jar:1.9.0]
>         at 
> org.apache.drill.exec.work.fragment.FragmentExecutor.sendFinalState(FragmentExecutor.java:293)
>  [drill-java-exec-1.9.0.jar:1.9.0]
>         at 
> org.apache.drill.exec.work.fragment.FragmentExecutor.cleanup(FragmentExecutor.java:160)
>  [drill-java-exec-1.9.0.jar:1.9.0]
>         at 
> org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:262)
>  [drill-java-exec-1.9.0.jar:1.9.0]
>         at 
> org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38)
>  [drill-common-1.9.0.jar:1.9.0]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  [na:1.8.0_91]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  [na:1.8.0_91]
>         at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91]
> Caused by: org.apache.drill.common.exceptions.DrillRuntimeException: 
> org.apache.drill.exec.exception.SchemaChangeException: 
> org.apache.drill.exec.exception.ClassTransformationException: 
> java.util.concurrent.ExecutionException: 
> org.apache.drill.exec.exception.ClassTransformationException: Failure 
> generating transformation classes for value:
> package org.apache.drill.exec.test.generated;
> ...
> public class HashJoinProbeGen294 {
>     NullableVarCharVector[] vv0;
>     NullableVarCharVector vv3;
>     NullableVarCharVector[] vv6;
>             ...
>             vv49137 .copyFromSafe((probeIndex), (outIndex), vv49134);
>             vv49143 .copyFromSafe((probeIndex), (outIndex), vv49140);
>             vv49149 .copyFromSafe((probeIndex), (outIndex), vv49146);
>         }
>     }
>     
> public void __DRILL_INIT__()
>         throws SchemaChangeException
>     {
>     }
> }
>         at 
> org.apache.drill.exec.compile.ClassTransformer.getImplementationClass(ClassTransformer.java:302)
>  ~[drill-java-exec-1.9.0.jar:1.9.0]
>         at 
> org.apache.drill.exec.compile.CodeCompiler$Loader.load(CodeCompiler.java:78) 
> ~[drill-java-exec-1.9.0.jar:1.9.0]
>         at 
> org.apache.drill.exec.compile.CodeCompiler$Loader.load(CodeCompiler.java:74) 
> ~[drill-java-exec-1.9.0.jar:1.9.0]
>         at 
> com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)
>  ~[guava-18.0.jar:na]
>         at 
> com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319) 
> ~[guava-18.0.jar:na]
>         ... 34 common frames omitted
> Caused by: org.codehaus.commons.compiler.CompileException: File 
> 'org.apache.drill.exec.compile.DrillJavaFileObject[HashJoinProbeGen294.java]',
>  Line 16397, Column 17: HashJoinProbeGen294.java:16397: error: code too large
>     public void doSetup(FragmentContext context, VectorContainer buildBatch, 
> RecordBatch probeBatch, RecordBatch outgoing)
>                 ^ (compiler.err.limit.code)
>         at 
> org.apache.drill.exec.compile.DrillDiagnosticListener.report(DrillDiagnosticListener.java:43)
>  ~[drill-java-exec-1.9.0.jar:1.9.0]
>         at 
> com.sun.tools.javac.api.ClientCodeWrapper$WrappedDiagnosticListener.report(ClientCodeWrapper.java:559)
>  ~[jdk.tools-1.7.jar:na]
>         at com.sun.tools.javac.util.Log.writeDiagnostic(Log.java:428) 
> ~[jdk.tools-1.7.jar:na]
>         at com.sun.tools.javac.util.Log.report(Log.java:416) 
> ~[jdk.tools-1.7.jar:na]
>         at com.sun.tools.javac.util.AbstractLog.error(AbstractLog.java:94) 
> ~[jdk.tools-1.7.jar:na]
>         at com.sun.tools.javac.jvm.Code.checkLimits(Code.java:95) 
> ~[jdk.tools-1.7.jar:na]
>         at com.sun.tools.javac.jvm.Gen.genMethod(Gen.java:948) 
> ~[jdk.tools-1.7.jar:na]
>         at com.sun.tools.javac.jvm.Gen.visitMethodDef(Gen.java:885) 
> ~[jdk.tools-1.7.jar:na]
>         at 
> com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:669) 
> ~[jdk.tools-1.7.jar:na]
>         at com.sun.tools.javac.jvm.Gen.genDef(Gen.java:684) 
> ~[jdk.tools-1.7.jar:na]
>         at com.sun.tools.javac.jvm.Gen.genClass(Gen.java:2232) 
> ~[jdk.tools-1.7.jar:na]
>         at 
> com.sun.tools.javac.main.JavaCompiler.genCode(JavaCompiler.java:712) 
> ~[jdk.tools-1.7.jar:na]
>         at 
> com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1451) 
> ~[jdk.tools-1.7.jar:na]
>         at 
> com.sun.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1419) 
> ~[jdk.tools-1.7.jar:na]
>         at 
> com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:870) 
> ~[jdk.tools-1.7.jar:na]
>         at 
> com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:829) 
> ~[jdk.tools-1.7.jar:na]
>         at com.sun.tools.javac.main.Main.compile(Main.java:439) 
> ~[jdk.tools-1.7.jar:na]
>         at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:132) 
> ~[jdk.tools-1.7.jar:na]
>         at 
> org.apache.drill.exec.compile.JDKClassCompiler.getByteCode(JDKClassCompiler.java:71)
>  ~[drill-java-exec-1.9.0.jar:1.9.0]
>         at 
> org.apache.drill.exec.compile.AbstractClassCompiler.getClassByteCode(AbstractClassCompiler.java:53)
>  ~[drill-java-exec-1.9.0.jar:1.9.0]
>         at 
> org.apache.drill.exec.compile.QueryClassLoader$ClassCompilerSelector.getClassByteCode(QueryClassLoader.java:143)
>  ~[drill-java-exec-1.9.0.jar:1.9.0]
>         at 
> org.apache.drill.exec.compile.QueryClassLoader$ClassCompilerSelector.access$100(QueryClassLoader.java:111)
>  ~[drill-java-exec-1.9.0.jar:1.9.0]
>         at 
> org.apache.drill.exec.compile.QueryClassLoader.getClassByteCode(QueryClassLoader.java:104)
>  ~[drill-java-exec-1.9.0.jar:1.9.0]
>         at 
> org.apache.drill.exec.compile.ClassTransformer.getImplementationClass(ClassTransformer.java:224)
>  ~[drill-java-exec-1.9.0.jar:1.9.0]
>         ... 38 common frames omitted
> 2016-12-26 09:52:12,251 [CONTROL-rpc-event-queue] WARN  
> o.a.drill.exec.work.foreman.Foreman - Dropping request to move to COMPLETED 
> state as query is already at FAILED state (which is terminal).
> {noformat}



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

Reply via email to