Joe McDonnell created IMPALA-13886:
--------------------------------------

             Summary: Tuple caching hits IllegalStateException for nested types
                 Key: IMPALA-13886
                 URL: https://issues.apache.org/jira/browse/IMPALA-13886
             Project: IMPALA
          Issue Type: Bug
          Components: Frontend
    Affects Versions: Impala 5.0.0
            Reporter: Joe McDonnell
            Assignee: Joe McDonnell


The tuple cache hits an assert when working on a table with nested types:
{noformat}
I0321 17:56:28.828924 244837 jni-util.cc:321] 
25486520ccba2db5:6a28f6b600000000] java.lang.IllegalStateException
    at com.google.common.base.Preconditions.checkState(Preconditions.java:496)
    at 
org.apache.impala.planner.TupleCacheInfo.getLocalTupleId(TupleCacheInfo.java:405)
    at 
org.apache.impala.common.ThriftSerializationCtx.translateTupleId(ThriftSerializationCtx.java:113)
    at 
org.apache.impala.analysis.SlotDescriptor.toThrift(SlotDescriptor.java:489)
    at 
org.apache.impala.planner.TupleCacheInfo.registerTupleHelper(TupleCacheInfo.java:349)
    at 
org.apache.impala.planner.TupleCacheInfo.registerTuple(TupleCacheInfo.java:313)
    at 
org.apache.impala.common.ThriftSerializationCtx.registerTuple(ThriftSerializationCtx.java:79)
    at org.apache.impala.planner.PlanNode.initThrift(PlanNode.java:551)
    at 
org.apache.impala.planner.PlanNode.computeTupleCacheInfo(PlanNode.java:1386)
    at 
org.apache.impala.planner.PlanNode.computeTupleCacheInfo(PlanNode.java:1343)
    at 
org.apache.impala.planner.TupleCachePlanner.createPlans(TupleCachePlanner.java:55)
    at org.apache.impala.planner.Planner.createPlans(Planner.java:325)
    at org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1975)
    at 
org.apache.impala.service.Frontend.getPlannedExecRequest(Frontend.java:3137)
    at 
org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:2895)
    at org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:2410)
    at org.apache.impala.service.Frontend.createExecRequest(Frontend.java:2036)
    at 
org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:175){noformat}
What's happening is that when we are registering the tuple descriptors, we are 
registering the top level tuple descriptor before registering the children. 
That is a problem, because the parent references in the tuple id of the child 
and expects it to already be registered. We should be registering all the 
children recursively before registering the parent.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to