Index: ql/src/java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/ZooKeeperHiveLockManager.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/ZooKeeperHiveLockManager.java +++ ql/src/java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/ZooKeeperHiveLockManager.java @@ -307,10 +307,6 @@ try { if (tryNum > 1) { Thread.sleep(sleepTime); - if (zooKeeper.getState() == ZooKeeper.States.CLOSED) { - // Reconnect if the connection is closed. - zooKeeper = null; - } prepareRetry(); } ret = lockPrimitive(key, mode, keepAlive, parentCreated); @@ -752,6 +748,10 @@ @Override public void prepareRetry() throws LockException { try { + if (zooKeeper != null && zooKeeper.getState() == ZooKeeper.States.CLOSED) { + // Reconnect if the connection is closed. + zooKeeper = null; + } renewZookeeperInstance(sessionTimeout, quorumServers); } catch (Exception e) { throw new LockException(e);