I'm trying to debug what's going on with https://issues.apache.org/jira/browse/DRILL-4704. Some selects involving an equality test for a decimal value don't work properly (details in the JIRA). With Intellij IDEA debugger remotely attached to Drill 1.6.0, I'm seeing some stack frames like these:
"28a8f4b3-7e41-05d9-e4d6-aa63d3717bee:frag:0:0@9112" daemon prio=10 tid=0x3c nid=NA runnable java.lang.Thread.State: RUNNABLE at org.apache.drill.exec.record.MaterializedField.getPrecision(MaterializedField.java:169) at org.apache.drill.exec.test.generated.ProjectorGen0.doEval(ProjectorTemplate.java:43) at org.apache.drill.exec.test.generated.ProjectorGen0.projectRecords(ProjectorTemplate.java:62) at org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.doWork(ProjectRecordBatch.java:172) at org.apache.drill.exec.record.AbstractSingleRecordBatch.innerNext(AbstractSingleRecordBatch.java:93) at org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext(ProjectRecordBatch.java:12 ... 28a8f4b3-7e41-05d9-e4d6-aa63d3717bee:frag:0:0@9112" daemon prio=10 tid=0x3c nid=NA runnable java.lang.Thread.State: RUNNABLE at org.apache.drill.exec.record.MaterializedField.getScale(MaterializedField.java:166) at org.apache.drill.exec.test.generated.FiltererGen1.doEval(FilterTemplate2.java:51) at org.apache.drill.exec.test.generated.FiltererGen1.filterBatchNoSV(FilterTemplate2.java:99) at org.apache.drill.exec.test.generated.FiltererGen1.filterBatch(FilterTemplate2.java:72) at org.apache.drill.exec.physical.impl.filter.FilterRecordBatch.doWork(FilterRecordBatch.java:82) .... In either case, the indicated FilterTemplate2 or ProjectorTemplate is in a different package org.apache.drill.exec.test.generated than that of the corresponding Java in the Drill 1.6.0 source code, and line numbers don't match. For someone who is trying to understand what's going on using the debugger (usually a good strategy), it's difficult to follow what is happening at runtime. It's looking like code is generated from the template code at runtime, compiled at runtime, and that's why I'm unable to debug symbolically into those classes. Can someone who understands Drill far better than I do shed some light? What is a good way to debug this problem? Thanks, Dave Oshinsky ***************************Legal Disclaimer*************************** "This communication may contain confidential and privileged material for the sole use of the intended recipient. Any unauthorized review, use or distribution by others is strictly prohibited. If you have received the message by mistake, please advise the sender by reply email and delete the message. Thank you." **********************************************************************