Prasanth Jayachandran created HIVE-21223:
--------------------------------------------

             Summary: CachedStore returns null partition when partition does 
not exist
                 Key: HIVE-21223
                 URL: https://issues.apache.org/jira/browse/HIVE-21223
             Project: Hive
          Issue Type: Bug
          Components: Metastore
    Affects Versions: 4.0.0, 3.2.0
            Reporter: Prasanth Jayachandran


CachedStore can return null partition for getPartitionWithAuth() when partition 
does not exist. null value serialization in thrift will break the connection. 
Instead if partition does not exist it should throw NoSuchObjectException.

Clients will see this exception
{code:java}
org.apache.thrift.TApplicationException: get_partition_with_auth failed: 
unknown result
at 
org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.recv_get_partition_with_auth(ThriftHiveMetastore.java:3017)
 ~[hive-exec-3.1.0.3.0.100.0-266.jar:3.1.0.3.0.100.0-266]
at 
org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.get_partition_with_auth(ThriftHiveMetastore.java:2990)
 ~[hive-exec-3.1.0.3.0.100.0-266.jar:3.1.0.3.0.100.0-266]
at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getPartitionWithAuthInfo(HiveMetaStoreClient.java:1679)
 ~[hive-exec-3.1.0.3.0.100.0-266.jar:3.1.0.3.0.100.0-266]
at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.getPartitionWithAuthInfo(HiveMetaStoreClient.java:1671)
 ~[hive-exec-3.1.0.3.0.100.0-266.jar:3.1.0.3.0.100.0-266]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_181]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_181]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_181]
at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:212)
 ~[hive-exec-3.1.0.3.0.100.0-266.jar:3.1.0.3.0.100.0-266]
at com.sun.proxy.$Proxy36.getPartitionWithAuthInfo(Unknown Source) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[?:1.8.0_181]
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[?:1.8.0_181]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_181]
at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient$SynchronizedHandler.invoke(HiveMetaStoreClient.java:2976)
 ~[hive-exec-3.1.0.3.0.100.0-266.jar:3.1.0.3.0.100.0-266]
at com.sun.proxy.$Proxy36.getPartitionWithAuthInfo(Unknown Source) ~[?:?]
at 
org.apache.hadoop.hive.metastore.SynchronizedMetaStoreClient.getPartitionWithAuthInfo(SynchronizedMetaStoreClient.java:101)
 ~[hive-exec-3.1.0.3.0.100.0-266.jar:3.1.0.3.0.100.0-266]
at org.apache.hadoop.hive.ql.metadata.Hive.getPartition(Hive.java:2870) 
~[hive-exec-3.1.0.3.0.100.0-266.jar:3.1.0.3.0.100.0-266]
at org.apache.hadoop.hive.ql.metadata.Hive.getPartition(Hive.java:2835) 
~[hive-exec-3.1.0.3.0.100.0-266.jar:3.1.0.3.0.100.0-266]
at org.apache.hadoop.hive.ql.metadata.Hive.loadPartition(Hive.java:1950) 
~[hive-exec-3.1.0.3.0.100.0-266.jar:3.1.0.3.0.100.0-266]
at org.apache.hadoop.hive.ql.metadata.Hive$4.call(Hive.java:2490) 
~[hive-exec-3.1.0.3.0.100.0-266.jar:3.1.0.3.0.100.0-266]
at org.apache.hadoop.hive.ql.metadata.Hive$4.call(Hive.java:2481) 
~[hive-exec-3.1.0.3.0.100.0-266.jar:3.1.0.3.0.100.0-266]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_181]
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
~[?:1.8.0_181]
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
~[?:1.8.0_181]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]{code}
 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to