Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.2.0, 4.0.0
-
None
Description
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
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]