[ 
https://issues.apache.org/jira/browse/HIVE-28038?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated HIVE-28038:
----------------------------------
    Labels: pull-request-available  (was: )

> Disable fallback to jdo for DeadlineException
> ---------------------------------------------
>
>                 Key: HIVE-28038
>                 URL: https://issues.apache.org/jira/browse/HIVE-28038
>             Project: Hive
>          Issue Type: Improvement
>          Components: Hive
>    Affects Versions: 4.0.0-beta-1
>            Reporter: Wechar
>            Assignee: Wechar
>            Priority: Major
>              Labels: pull-request-available
>
> When {{DeadlineException}} occurs, the call should be terminated immediately 
> instead of falling back to jdo query, because some jdo query does not take 
> use of {{{}Deadline.checkTimeout(){}}}.
> {*}How to Reproduce{*}:
> Step 1: start a metastore server with metastore config:
> {code:xml}
>   <!-- hivemetastore-site.xml -->
>   <property>
>     <name>hive.metastore.client.socket.timeout</name>
>     <value>60s</value>
>   </property>
> {code}
> Step 2: Create a table with large partitions
> Step 3: set hive client socket timeout same as server, and call drop_table to 
> drop this table
> {code:java}
>     conf.set("hive.metastore.client.socket.timeout", "60s");
>     conf.set("hive.metastore.failure.retries", "0");
> {code}
>  
> The direct sql query would throw DeadlineException while dropping partitions 
> in batch, but it would fall back to jdo query to drop partitions for each 
> batch, we can find clues from the server log:
> {code:bash}
> 2024-01-26T08:52:14,877 INFO  [Metastore-Handler-Pool: Thread-54]: 
> HiveMetaStore.audit (HMSHandler.java:logAuditEvent(207)) - ugi=root  
> ip=10.89.0.1    cmd=source:10.89.0.1 get_all_functions  
> 2024-01-26T08:52:14,879 INFO  [Metastore-Handler-Pool: Thread-54]: 
> metastore.HMSHandler (HMSHandler.java:newRawStoreForConf(600)) - Opening raw 
> store with implementation class: org.apache.hadoop.hive.metastore.ObjectStore
> 2024-01-26T08:52:14,879 INFO  [Metastore-Handler-Pool: Thread-54]: 
> metastore.PersistenceManagerProvider 
> (PersistenceManagerProvider.java:correctAutoStartMechanism(577)) - 
> Configuration datanucleus.autoStartMechanismMode is not set
> . Defaulting to 'ignored'
> 2024-01-26T08:52:14,879 INFO  [Metastore-Handler-Pool: Thread-54]: 
> metastore.ObjectStore (ObjectStore.java:shutdown(568)) - RawStore: 
> org.apache.hadoop.hive.metastore.ObjectStore@53c9fbcd, with 
> PersistenceManager: null will be shu
> tdown
> 2024-01-26T08:52:14,881 INFO  [Metastore-Handler-Pool: Thread-54]: 
> metastore.ObjectStore (ObjectStore.java:initialize(430)) - RawStore: 
> org.apache.hadoop.hive.metastore.ObjectStore@53c9fbcd, with 
> PersistenceManager: org.datanucleu
> s.api.jdo.JDOPersistenceManager@586cd877 created in the thread with id: 54
> 2024-01-26T08:52:14,890 INFO  [Metastore-Handler-Pool: Thread-54]: 
> metastore.HMSHandler (HMSHandler.java:getMSForConf(587)) - Created RawStore: 
> org.apache.hadoop.hive.metastore.ObjectStore@53c9fbcd
> 2024-01-26T08:52:14,913 INFO  [Metastore-Handler-Pool: Thread-54]: 
> HiveMetaStore.audit (HMSHandler.java:logAuditEvent(207)) - ugi=root  
> ip=10.89.0.1    cmd=source:10.89.0.1 get_table : tbl=hive.default.test_tbl    
>   
> 2024-01-26T08:52:15,069 INFO  [Metastore-Handler-Pool: Thread-54]: 
> metastore.HMSHandler (HMSHandler.java:getTableInternal(3582)) - Skipping 
> translation for processor with null
> 2024-01-26T08:52:15,094 INFO  [Metastore-Handler-Pool: Thread-54]: 
> HiveMetaStore.audit (HMSHandler.java:logAuditEvent(207)) - ugi=root  
> ip=10.89.0.1    cmd=source:10.89.0.1 drop_table : tbl=hive.default.test_tbl   
>   
> 2024-01-26T08:52:54,593 INFO  [Metastore Scheduled Worker 1]: 
> metastore.HMSHandler (HMSHandler.java:newRawStoreForConf(600)) - Opening raw 
> store with implementation class: org.apache.hadoop.hive.metastore.ObjectStore
> 2024-01-26T08:52:54,594 INFO  [Metastore Scheduled Worker 1]: 
> metastore.PersistenceManagerProvider 
> (PersistenceManagerProvider.java:correctAutoStartMechanism(577)) - 
> Configuration datanucleus.autoStartMechanismMode is not set. Def
> aulting to 'ignored'
> 2024-01-26T08:52:54,594 INFO  [Metastore Scheduled Worker 1]: 
> metastore.ObjectStore (ObjectStore.java:shutdown(568)) - RawStore: 
> org.apache.hadoop.hive.metastore.ObjectStore@63e26ab7, with 
> PersistenceManager: null will be shutdown
> 2024-01-26T08:52:54,595 INFO  [Metastore Scheduled Worker 1]: 
> metastore.ObjectStore (ObjectStore.java:initialize(430)) - RawStore: 
> org.apache.hadoop.hive.metastore.ObjectStore@63e26ab7, with 
> PersistenceManager: org.datanucleus.api
> .jdo.JDOPersistenceManager@19d73712 created in the thread with id: 48
> 2024-01-26T08:52:54,601 INFO  [Metastore Scheduled Worker 1]: 
> metastore.HMSHandler (HMSHandler.java:getMSForConf(587)) - Created RawStore: 
> org.apache.hadoop.hive.metastore.ObjectStore@63e26ab7
> 2024-01-26T08:53:15,125 WARN  [Metastore-Handler-Pool: Thread-54]: 
> metastore.ObjectStore (ObjectStore.java:handleDirectSqlError(4455)) - Falling 
> back to ORM path due to direct SQL failure (this is not an error): Timeout 
> when execu
> ting method: drop_table_with_environment_context; 60021ms exceeds 60000ms at 
> org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.newMetaException(MetaStoreUtils.java:218)
>  at org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.
> newMetaException(MetaStoreUtils.java:208) at 
> org.apache.hadoop.hive.metastore.Deadline.check(Deadline.java:169) at 
> org.apache.hadoop.hive.metastore.Deadline.checkTimeout(Deadline.java:148) at 
> org.apache.hadoop.hive.metastore.MetaS
> toreDirectSql.dropPartitionsByPartitionIds(MetaStoreDirectSql.java:2857) at 
> org.apache.hadoop.hive.metastore.MetaStoreDirectSql.access$1900(MetaStoreDirectSql.java:136)
>  at org.apache.hadoop.hive.metastore.MetaStoreDirectSql$10.run
> (MetaStoreDirectSql.java:2780) at 
> org.apache.hadoop.hive.metastore.Batchable.runBatched(Batchable.java:79) at 
> org.apache.hadoop.hive.metastore.MetaStoreDirectSql.dropPartitionsViaSqlFilter(MetaStoreDirectSql.java:2770)
>  at org.apac
> he.hadoop.hive.metastore.ObjectStore$7.getSqlResult(ObjectStore.java:3146);
>  Caused by: Timeout when executing method: 
> drop_table_with_environment_context; 60021ms exceeds 60000ms at 
> org.apache.hadoop.hive.metastore.Deadline.check(Deadline.java:165)
> 2024-01-26T08:53:22,011 WARN  [Metastore-Handler-Pool: Thread-54]: 
> metastore.ObjectStore (ObjectStore.java:handleDirectSqlError(4455)) - Falling 
> back to ORM path due to direct SQL failure (this is not an error): Timeout 
> when execu
> ting method: drop_table_with_environment_context; 66916ms exceeds 60000ms at 
> org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.newMetaException(MetaStoreUtils.java:218)
>  at org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.
> newMetaException(MetaStoreUtils.java:208) at 
> org.apache.hadoop.hive.metastore.Deadline.check(Deadline.java:169) at 
> org.apache.hadoop.hive.metastore.Deadline.checkTimeout(Deadline.java:148) at 
> org.apache.hadoop.hive.metastore.MetaS
> toreDirectSql.dropPartitionsByPartitionIds(MetaStoreDirectSql.java:2830) at 
> org.apache.hadoop.hive.metastore.MetaStoreDirectSql.access$1900(MetaStoreDirectSql.java:136)
>  at org.apache.hadoop.hive.metastore.MetaStoreDirectSql$10.run
> (MetaStoreDirectSql.java:2780) at 
> org.apache.hadoop.hive.metastore.Batchable.runBatched(Batchable.java:79) at 
> org.apache.hadoop.hive.metastore.MetaStoreDirectSql.dropPartitionsViaSqlFilter(MetaStoreDirectSql.java:2770)
>  at org.apac
> he.hadoop.hive.metastore.ObjectStore$7.getSqlResult(ObjectStore.java:3146);
>  Caused by: Timeout when executing method: 
> drop_table_with_environment_context; 66916ms exceeds 60000ms at 
> org.apache.hadoop.hive.metastore.Deadline.check(Deadline.java:165)
> 2024-01-26T08:53:28,238 WARN  [Metastore-Handler-Pool: Thread-54]: 
> metastore.ObjectStore (ObjectStore.java:handleDirectSqlError(4455)) - Falling 
> back to ORM path due to direct SQL failure (this is not an error): Timeout 
> when execu
> ting method: drop_table_with_environment_context; 73143ms exceeds 60000ms at 
> org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.newMetaException(MetaStoreUtils.java:218)
>  at org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.
> newMetaException(MetaStoreUtils.java:208) at 
> org.apache.hadoop.hive.metastore.Deadline.check(Deadline.java:169) at 
> org.apache.hadoop.hive.metastore.Deadline.checkTimeout(Deadline.java:148) at 
> org.apache.hadoop.hive.metastore.MetaS
> toreDirectSql.dropPartitionsByPartitionIds(MetaStoreDirectSql.java:2830) at 
> org.apache.hadoop.hive.metastore.MetaStoreDirectSql.access$1900(MetaStoreDirectSql.java:136)
>  at org.apache.hadoop.hive.metastore.MetaStoreDirectSql$10.run
> (MetaStoreDirectSql.java:2780) at 
> org.apache.hadoop.hive.metastore.Batchable.runBatched(Batchable.java:79) at 
> org.apache.hadoop.hive.metastore.MetaStoreDirectSql.dropPartitionsViaSqlFilter(MetaStoreDirectSql.java:2770)
>  at org.apac
> he.hadoop.hive.metastore.ObjectStore$7.getSqlResult(ObjectStore.java:3146);
>  Caused by: Timeout when executing method: 
> drop_table_with_environment_context; 73143ms exceeds 60000ms at 
> org.apache.hadoop.hive.metastore.Deadline.check(Deadline.java:165)
> 2024-01-26T08:53:34,714 WARN  [Metastore-Handler-Pool: Thread-54]: 
> metastore.ObjectStore (ObjectStore.java:handleDirectSqlError(4455)) - Falling 
> back to ORM path due to direct SQL failure (this is not an error): Timeout 
> when executing method: drop_table_with_environment_context; 79619ms exceeds 
> 60000ms at 
> org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.newMetaException(MetaStoreUtils.java:218)
>  at 
> org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.newMetaException(MetaStoreUtils.java:208)
>  at org.apache.hadoop.hive.metastore.Deadline.check(Deadline.java:169) at 
> org.apache.hadoop.hive.metastore.Deadline.checkTimeout(Deadline.java:148) at 
> org.apache.hadoop.hive.metastore.MetaStoreDirectSql.dropPartitionsByPartitionIds(MetaStoreDirectSql.java:2830)
>  at 
> org.apache.hadoop.hive.metastore.MetaStoreDirectSql.access$1900(MetaStoreDirectSql.java:136)
>  at 
> org.apache.hadoop.hive.metastore.MetaStoreDirectSql$10.run(MetaStoreDirectSql.java:2780)
>  at org.apache.hadoop.hive.metastore.Batchable.runBatched(Batchable.java:79) 
> at 
> org.apache.hadoop.hive.metastore.MetaStoreDirectSql.dropPartitionsViaSqlFilter(MetaStoreDirectSql.java:2770)
>  at 
> org.apache.hadoop.hive.metastore.ObjectStore$7.getSqlResult(ObjectStore.java:3146);
>  {code}



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

Reply via email to