diff --git ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java index 28ca77c..1d4a3c8 100644 --- ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java +++ ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java @@ -510,7 +510,7 @@ private Heartbeater startHeartbeat(long initialDelay) throws LockException { if(conf.getBoolVar(HiveConf.ConfVars.HIVE_IN_TEST) && conf.getBoolVar(HiveConf.ConfVars.HIVETESTMODEFAILHEARTBEATER)) { initialDelay = 0; } else if (initialDelay == 0) { - initialDelay = heartbeatInterval; + initialDelay = heartbeatInterval / 2; } heartbeatTask = heartbeatExecutorService.scheduleAtFixedRate( heartbeater, initialDelay, heartbeatInterval, TimeUnit.MILLISECONDS); diff --git ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager.java ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager.java index 3f99571..8e035a5 100644 --- ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager.java +++ ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager.java @@ -420,9 +420,10 @@ public void testHeartbeater() throws Exception { LockException exception = null; QueryPlan qp = new MockQueryPlan(this); - // Case 1: If there's no delay for the heartbeat, txn should be able to commit - txnMgr.openTxn(ctx, "fred"); - txnMgr.acquireLocks(qp, ctx, "fred"); // heartbeat started.. + // Case 1: If there's no delay specified for the heartbeat, txn should be able to commit + // When no delay is specified, by default it is set HIVE_TXN_TIMEOUT / 4 + txnMgr.openTxn(ctx, "fred"); // heartbeat started.. + txnMgr.acquireLocks(qp, ctx, "fred"); runReaper(); try { txnMgr.commitTxn();