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

Impala writes malformed thrift profiles

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • Impala 3.2.0
    • Impala 3.2.0
    • Backend

    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

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

            Dates

              Created:
              Updated:
              Resolved: