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."
**********************************************************************

Reply via email to