Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-26667

Incompatible expression deserialization against latest HMS

    XMLWordPrintableJSON

Details

    Description

      When an old Metastore client requests listPartitionsByExpr against the lastest HMS, an exception would be thrown:

       

      MetaException(message:Unable to find class: 
      )
      	at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_partitions_by_expr_result$get_partitions_by_expr_resultStandardScheme.read(ThriftHiveMetastore.java)
      	at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_partitions_by_expr_result$get_partitions_by_expr_resultStandardScheme.read(ThriftHiveMetastore.java)
      	at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$get_partitions_by_expr_result.read(ThriftHiveMetastore.java)
      	at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:86)
      	at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.recv_get_partitions_by_expr(ThriftHiveMetastore.java:3273)
      	at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.get_partitions_by_expr(ThriftHiveMetastore.java:3260)
      	at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.listPartitionsByExpr(HiveMetaStoreClient.java:1488)

      This was caused by a gap between old client and server on (de)serializing the expression. Old client doesn't stream the expression’s class type into bytes, while HMS reads the class type from serialized bytes first, which makes the trouble. Other APIs that need to (de)serialize expression may be suffered as well.

       

      Attachments

        Issue Links

          Activity

            People

              dengzh Zhihua Deng
              dengzh Zhihua Deng
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 40m
                  40m