You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Sean Hsuan-Yi Chu (JIRA)" <ji...@apache.org> on 2015/11/17 08:21:10 UTC

[jira] [Commented] (DRILL-4098) Assembly code in drillbit.log

    [ https://issues.apache.org/jira/browse/DRILL-4098?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15008183#comment-15008183 ] 

Sean Hsuan-Yi Chu commented on DRILL-4098:
------------------------------------------

Drill tries to apply scalar replacement, and if it fails (just like your observation, exception comes along with some assembly code), it falls back to the original code path. 

So as long as the original code path works, it might be fine. How did the result in client look? Was is correct? 

> Assembly code in drillbit.log
> -----------------------------
>
>                 Key: DRILL-4098
>                 URL: https://issues.apache.org/jira/browse/DRILL-4098
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Flow
>    Affects Versions: 1.3.0
>            Reporter: Khurram Faraaz
>
> We are seeing the below assembly code and the stack trace in drillbit.log after a Functional test run on a 4 node cluster on CentOS using MapR-Drill 1.3 RPM (latest 11/11).
> From drillbit.log
> {code}
> 2015-11-12 06:36:53,553 [29bbcc7a-36dd-dc7a-d77a-388b228896a4:frag:0:0] INFO  o.a.d.e.w.f.FragmentStatusReporter - 29bbcc7a-36dd-dc7a-d77a-388b228896a4:0:0: State to report: RUNNING
> 2015-11-12 06:36:53,588 [29bbcc7a-36dd-dc7a-d77a-388b228896a4:frag:0:0] ERROR o.a.drill.exec.compile.MergeAdapter - Failure while merging classes.
> java.lang.RuntimeException: Error at instruction 26: Expected an object reference, but found . doEval(II)V
> 00000 R I I . . .  :  :    L0
> 00001 R I I . . .  :  :     LINENUMBER 104 L0
> 00002 R I I . . .  :  :     LCONST_0
> 00003 R I I . . .  : J  :     LSTORE 3
> 00004 R I I J . .  :  :    L1
> 00005 R I I J . .  :  :     LINENUMBER 106 L1
> 00006 R I I J . .  :  :     ALOAD 0
> 00007 R I I J . .  : R  :     GETFIELD org/apache/drill/exec/test/generated/ProjectorGen4245.vv0 : Lorg/apache/drill/exec/vector/BigIntVector;
> 00008 R I I J . .  : R  :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector.getAccessor ()Lorg/apache/drill/exec/vector/BigIntVector$Accessor;
> 00009 R I I J . .  : R  :     ILOAD 1
> 00010 R I I J . .  : R I  :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector$Accessor.get (I)J
> 00011 R I I J . .  : J  :     LSTORE 3
> 00012 R I I J . .  :  :    L2
> 00013 R I I J . .  :  :     LINENUMBER 108 L2
> 00014 R I I J . .  :  :     ALOAD 0
> 00015 R I I J . .  : R  :     GETFIELD org/apache/drill/exec/test/generated/ProjectorGen4245.vv4 : Lorg/apache/drill/exec/vector/BigIntVector;
> 00016 R I I J . .  : R  :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector.getMutator ()Lorg/apache/drill/exec/vector/BigIntVector$Mutator;
> 00017 R I I J . .  : R  :     ILOAD 2
> 00018 R I I J . .  : R I  :     LLOAD 3
> 00019 R I I J . .  : R I J  :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector$Mutator.set (IJ)V
> 00020 R I I J . .  :  :    L3
> 00021 R I I J . .  :  :     LINENUMBER 109 L3
> 00022 R I I J . .  :  :     ALOAD 0
> 00023 R I I J . .  : R  :     GETFIELD org/apache/drill/exec/test/generated/ProjectorGen4245.vv7 : Lorg/apache/drill/exec/vector/BigIntVector;
> 00024 R I I J . .  : R  :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector.getMutator ()Lorg/apache/drill/exec/vector/BigIntVector$Mutator;
> 00025 R I I J . .  : R  :     ILOAD 2
> 00026 R I I J . .  : R I  :     ALOAD 5
> 00027 ?           :     GETFIELD org/apache/drill/exec/expr/holders/BigIntHolder.value : J
> 00028 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector$Mutator.set (IJ)V
> 00029 ?           :    L4
> 00030 ?           :     LINENUMBER 110 L4
> 00031 ?           :     ALOAD 0
> 00032 ?           :     GETFIELD org/apache/drill/exec/test/generated/ProjectorGen4245.vv10 : Lorg/apache/drill/exec/vector/BigIntVector;
> 00033 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector.getMutator ()Lorg/apache/drill/exec/vector/BigIntVector$Mutator;
> 00034 ?           :     ILOAD 2
> 00035 ?           :     ALOAD 5
> 00036 ?           :     GETFIELD org/apache/drill/exec/expr/holders/BigIntHolder.value : J
> 00037 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector$Mutator.set (IJ)V
> 00038 ?           :    L5
> 00039 ?           :     LINENUMBER 111 L5
> 00040 ?           :     ALOAD 0
> 00041 ?           :     GETFIELD org/apache/drill/exec/test/generated/ProjectorGen4245.vv13 : Lorg/apache/drill/exec/vector/BigIntVector;
> 00042 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector.getMutator ()Lorg/apache/drill/exec/vector/BigIntVector$Mutator;
> 00043 ?           :     ILOAD 2
> 00044 ?           :     ALOAD 5
> 00045 ?           :     GETFIELD org/apache/drill/exec/expr/holders/BigIntHolder.value : J
> 00046 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector$Mutator.set (IJ)V
> 00047 ?           :    L6
> 00048 ?           :     LINENUMBER 112 L6
> 00049 ?           :     ALOAD 0
> 00050 ?           :     GETFIELD org/apache/drill/exec/test/generated/ProjectorGen4245.vv16 : Lorg/apache/drill/exec/vector/BigIntVector;
> 00051 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector.getMutator ()Lorg/apache/drill/exec/vector/BigIntVector$Mutator;
> 00052 ?           :     ILOAD 2
> 00053 ?           :     ALOAD 5
> 00054 ?           :     GETFIELD org/apache/drill/exec/expr/holders/BigIntHolder.value : J
> 00055 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector$Mutator.set (IJ)V
> 00056 ?           :    L7
> 00057 ?           :     LINENUMBER 113 L7
> 00058 ?           :     ALOAD 0
> 00059 ?           :     GETFIELD org/apache/drill/exec/test/generated/ProjectorGen4245.vv19 : Lorg/apache/drill/exec/vector/BigIntVector;
> 00060 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector.getMutator ()Lorg/apache/drill/exec/vector/BigIntVector$Mutator;
> 00061 ?           :     ILOAD 2
> 00061 ?           :     ILOAD 2
> 00062 ?           :     ALOAD 5
> 00063 ?           :     GETFIELD org/apache/drill/exec/expr/holders/BigIntHolder.value : J
> 00064 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector$Mutator.set (IJ)V
> 00065 ?           :    L8
> 00066 ?           :     LINENUMBER 114 L8
> 00067 ?           :     ALOAD 0
> 00068 ?           :     GETFIELD org/apache/drill/exec/test/generated/ProjectorGen4245.vv22 : Lorg/apache/drill/exec/vector/BigIntVector;
> 00069 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector.getMutator ()Lorg/apache/drill/exec/vector/BigIntVector$Mutator;
> 00070 ?           :     ILOAD 2
> 00071 ?           :     ALOAD 5
> 00072 ?           :     GETFIELD org/apache/drill/exec/expr/holders/BigIntHolder.value : J
> 00073 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector$Mutator.set (IJ)V
> 00074 ?           :    L9
> 00075 ?           :     LINENUMBER 115 L9
> 00076 ?           :     ALOAD 0
> 00077 ?           :     GETFIELD org/apache/drill/exec/test/generated/ProjectorGen4245.vv25 : Lorg/apache/drill/exec/vector/BigIntVector;
> 00078 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector.getMutator ()Lorg/apache/drill/exec/vector/BigIntVector$Mutator;
> 00079 ?           :     ILOAD 2
> 00080 ?           :     ALOAD 5
> 00081 ?           :     GETFIELD org/apache/drill/exec/expr/holders/BigIntHolder.value : J
> 00082 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector$Mutator.set (IJ)V
> 00083 ?           :    L10
> 00084 ?           :     LINENUMBER 116 L10
> 00085 ?           :     ALOAD 0
> 00086 ?           :     GETFIELD org/apache/drill/exec/test/generated/ProjectorGen4245.vv28 : Lorg/apache/drill/exec/vector/BigIntVector;
> 00087 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector.getMutator ()Lorg/apache/drill/exec/vector/BigIntVector$Mutator;
> 00088 ?           :     ILOAD 2
> 00089 ?           :     ALOAD 5
> 00090 ?           :     GETFIELD org/apache/drill/exec/expr/holders/BigIntHolder.value : J
> 00091 ?           :     INVOKEVIRTUAL org/apache/drill/exec/vector/BigIntVector$Mutator.set (IJ)V
> 00092 ?           :    L11
> 00093 ?           :     LINENUMBER 100 L11
> 00094 ?           :     RETURN
> 00095 ?           :    L12
> at org.objectweb.asm.util.CheckMethodAdapter$1.visitEnd(CheckMethodAdapter.java:463) ~[asm-debug-all-5.0.3.jar:5.0.3]
>         at org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:877) ~[asm-debug-all-5.0.3.jar:5.0.3]
>         at org.objectweb.asm.util.CheckMethodAdapter.visitEnd(CheckMethodAdapter.java:1028) ~[asm-debug-all-5.0.3.jar:5.0.3]
>         at org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:877) ~[asm-debug-all-5.0.3.jar:5.0.3]
>         at org.apache.drill.exec.compile.CheckMethodVisitorFsm.visitEnd(CheckMethodVisitorFsm.java:114) ~[drill-java-exec-1.3.0.jar:1.3.0]
>         at org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:877) ~[asm-debug-all-5.0.3.jar:5.0.3]
>         at org.apache.drill.exec.compile.CheckMethodVisitorFsm.visitEnd(CheckMethodVisitorFsm.java:114) ~[drill-java-exec-1.3.0.jar:1.3.0]
>         at org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:877) ~[asm-debug-all-5.0.3.jar:5.0.3]
>         at org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:877) ~[asm-debug-all-5.0.3.jar:5.0.3]
>         at org.apache.drill.exec.compile.bytecode.InstructionModifier.visitEnd(InstructionModifier.java:508) ~[drill-java-exec-1.3.0.jar:1.3.0]
>         at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:837) ~[asm-debug-all-5.0.3.jar:5.0.3]
>         at org.apache.drill.exec.compile.bytecode.ScalarReplacementNode.visitEnd(ScalarReplacementNode.java:87) ~[drill-java-exec-1.3.0.jar:1.3.0]
>         at org.objectweb.asm.MethodVisitor.visitEnd(MethodVisitor.java:877) ~[asm-debug-all-5.0.3.jar:5.0.3]
>         at org.apache.drill.exec.compile.bytecode.AloadPopRemover.visitEnd(AloadPopRemover.java:136) ~[drill-java-exec-1.3.0.jar:1.3.0]
>         at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:837) ~[asm-debug-all-5.0.3.jar:5.0.3]
>         at org.objectweb.asm.tree.MethodNode.accept(MethodNode.java:726) ~[asm-debug-all-5.0.3.jar:5.0.3]
>         at org.objectweb.asm.tree.ClassNode.accept(ClassNode.java:412) ~[asm-debug-all-5.0.3.jar:5.0.3]
>         at org.apache.drill.exec.compile.MergeAdapter.getMergedClass(MergeAdapter.java:223) ~[drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.compile.ClassTransformer.getImplementationClass(ClassTransformer.java:265) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.compile.CodeCompiler$Loader.load(CodeCompiler.java:81) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.compile.CodeCompiler$Loader.load(CodeCompiler.java:77) [drill-java-exec-1.3.0.jar:1.3.0]
>         at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599) [guava-14.0.1.jar:na]
>         at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379) [guava-14.0.1.jar:na]
>         at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342) [guava-14.0.1.jar:na]
>         at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257) [guava-14.0.1.jar:na]
>         at com.google.common.cache.LocalCache.get(LocalCache.java:4000) [guava-14.0.1.jar:na]
>         at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004) [guava-14.0.1.jar:na]
>         at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874) [guava-14.0.1.jar:na]
>         at org.apache.drill.exec.compile.CodeCompiler.getImplementationClass(CodeCompiler.java:66) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.compile.CodeCompiler.getImplementationClass(CodeCompiler.java:59) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.ops.FragmentContext.getImplementationClass(FragmentContext.java:300) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.setupNewSchema(ProjectRecordBatch.java:446) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:78) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext(ProjectRecordBatch.java:132) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:162) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:104) [drill-java-exec-1.3.0.jar:1.3.0]
> at org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext(ScreenCreator.java:80) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:94) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:256) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:250) [drill-java-exec-1.3.0.jar:1.3.0]
>         at java.security.AccessController.doPrivileged(Native Method) [na:1.7.0_45]
>         at javax.security.auth.Subject.doAs(Subject.java:415) [na:1.7.0_45]
>         at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1595) [hadoop-common-2.7.0-mapr-1506.jar:na]
>         at org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:250) [drill-java-exec-1.3.0.jar:1.3.0]
>         at org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38) [drill-common-1.3.0.jar:1.3.0]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_45]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_45]
>         at java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]
> 2015-11-12 06:36:53,590 [29bbcc7a-36dd-dc7a-d77a-388b228896a4:frag:0:0] INFO  o.a.d.exec.compile.ClassTransformer - scalar replacement failure (retrying)
> {code}



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