Zhihua Deng created HIVE-26667:
----------------------------------

             Summary: Incompatible expression deserialization against latest HMS
                 Key: HIVE-26667
                 URL: https://issues.apache.org/jira/browse/HIVE-26667
             Project: Hive
          Issue Type: Bug
          Components: Standalone Metastore
            Reporter: Zhihua Deng


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

 
{noformat}
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){noformat}
This was caused by a gap between old client and server on (de)serializing the 
expression. In old client, we don’t stream the expression’s class type into 
bytes, while the server should read the class type from serialized bytes 
firstly, which makes the trouble. Other APIs that need to (de)serialize 
expression may be suffered as well.

 



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

Reply via email to