Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-8252

Impala writes malformed thrift profiles

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: Impala 3.2.0
    • Fix Version/s: Impala 3.2.0
    • Component/s: Backend
    • Labels:

      Description

      The change for IMPALA-1048 writes TRuntimeProfileNode.node_metadata unconditionally, even when both its fields are unset. This trips up the Java reader code, which expects to find exactly one type of a union to be set. The resulting error looks like this:

      Caused by: org.apache.thrift.protocol.TProtocolException: Unrecognized type 0
              at org.apache.thrift.protocol.TProtocolUtil.skip(TProtocolUtil.java:144)
              at org.apache.thrift.protocol.TProtocolUtil.skip(TProtocolUtil.java:60)
              at com.cloudera.impala.thrift.TRuntimeProfileNodeMetadata.standardSchemeReadValue(TRuntimeProfileNodeMetadata.java:163)
              at org.apache.thrift.TUnion$TUnionStandardScheme.read(TUnion.java:224)
              at org.apache.thrift.TUnion$TUnionStandardScheme.read(TUnion.java:213)
              at org.apache.thrift.TUnion.read(TUnion.java:138)
              at com.cloudera.impala.thrift.TRuntimeProfileNode$TRuntimeProfileNodeStandardScheme.read(TRuntimeProfileNode.java:1532)
              at com.cloudera.impala.thrift.TRuntimeProfileNode$TRuntimeProfileNodeStandardScheme.read(TRuntimeProfileNode.java:1341)
              at com.cloudera.impala.thrift.TRuntimeProfileNode.read(TRuntimeProfileNode.java:1187)
              at com.cloudera.impala.thrift.TRuntimeProfileTree$TRuntimeProfileTreeStandardScheme.read(TRuntimeProfileTree.java:426)
              at com.cloudera.impala.thrift.TRuntimeProfileTree$TRuntimeProfileTreeStandardScheme.read(TRuntimeProfileTree.java:405)
              at com.cloudera.impala.thrift.TRuntimeProfileTree.read(TRuntimeProfileTree.java:339)
              at org.apache.thrift.TDeserializer.deserialize(TDeserializer.java:81)
              at org.apache.thrift.TDeserializer.deserialize(TDeserializer.java:67)
              at com.cloudera.ipe.util.ThriftUtil.read(ThriftUtil.java:65)
      

      (This particular implementation rewrites the Java namespace for compatibility reasons, but the code used the latest master commit's thrift files.)

        Attachments

          Activity

            People

            • Assignee:
              lv Lars Volker
              Reporter:
              lv Lars Volker
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: