[ https://issues.apache.org/jira/browse/HIVE-22193?focusedWorklogId=790631&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-790631 ]
ASF GitHub Bot logged work on HIVE-22193: ----------------------------------------- Author: ASF GitHub Bot Created on: 13/Jul/22 23:30 Start Date: 13/Jul/22 23:30 Worklog Time Spent: 10m Work Description: sourabh912 commented on code in PR #3386: URL: https://github.com/apache/hive/pull/3386#discussion_r920590934 ########## service/src/java/org/apache/hive/service/server/HiveServer2.java: ########## @@ -895,6 +897,46 @@ private void stopOrDisconnectTezSessions() { } } + public synchronized void decommission() { + LOG.info("Decommissioning HiveServer2"); + // Remove this server instance from ZooKeeper if dynamic service discovery is set + if (serviceDiscovery && !activePassiveHA && zooKeeperHelper != null) { + try { + zooKeeperHelper.removeServerInstanceFromZooKeeper(); + } catch (Exception e) { + LOG.error("Error removing znode for this HiveServer2 instance from ZooKeeper.", e); + } + } + super.decommission(); + } + + public synchronized void graceful_stop() { + try { + decommission(); + long maxTimeForWait = HiveConf.getTimeVar(getHiveConf(), + HiveConf.ConfVars.HIVE_SERVER2_GRACEFUL_STOP_TIMEOUT, TimeUnit.MILLISECONDS); + if (maxTimeForWait > 0) { + ExecutorService service = Executors.newSingleThreadExecutor(); + Future future = service.submit(() -> { + while (getCliService() != null && getCliService().getSessionManager() Review Comment: Agreeing that wait/notify may not be required in this case since this code path will only be executed when HS2 is being terminated. I am fine with using sleep. It would be good to add a comment in the code mentioning the same. Issue Time Tracking ------------------- Worklog Id: (was: 790631) Time Spent: 3h 40m (was: 3.5h) > Graceful Shutdown HiveServer2 > ----------------------------- > > Key: HIVE-22193 > URL: https://issues.apache.org/jira/browse/HIVE-22193 > Project: Hive > Issue Type: Improvement > Components: Server Infrastructure > Reporter: chenshiyun > Assignee: Zhihua Deng > Priority: Major > Labels: pull-request-available > Time Spent: 3h 40m > Remaining Estimate: 0h > > We have a lot of HiveSever2 servers deployed on production environment (about > 10 nodes). > However, if we want to change configuration or add patches, we would have to > restart all of them one by one. So all the Hive Sql job running on the server > will be defeated, and there may be some mistakes come up on the jdbc client > occasionally. > In the proposed changes, planning to add Graceful Shutdown HiveSever2 method > to avoid affecting the production environment jobs -- This message was sent by Atlassian Jira (v8.20.10#820010)