You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ga...@apache.org on 2014/12/08 19:37:18 UTC
svn commit: r1643885 - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/ErrorMsg.java
java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java
test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager.java
Author: gates
Date: Mon Dec 8 18:37:18 2014
New Revision: 1643885
URL: http://svn.apache.org/r1643885
Log:
HIVE-8326 Using DbTxnManager with concurrency off results in run time error (Alan Gates, reviewed by Eugene Koifman)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager.java
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java?rev=1643885&r1=1643884&r2=1643885&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java Mon Dec 8 18:37:18 2014
@@ -388,6 +388,8 @@ public enum ErrorMsg {
TXN_NO_SUCH_TRANSACTION(10262, "No record of transaction could be found, " +
"may have timed out"),
TXN_ABORTED(10263, "Transaction manager has aborted the transaction."),
+ DBTXNMGR_REQUIRES_CONCURRENCY(10264,
+ "To use DbTxnManager you must set hive.support.concurrency=true"),
LOCK_NO_SUCH_LOCK(10270, "No record of lock could be found, " +
"may have timed out"),
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java?rev=1643885&r1=1643884&r2=1643885&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java Mon Dec 8 18:37:18 2014
@@ -20,6 +20,7 @@ package org.apache.hadoop.hive.ql.lockmg
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hive.common.ValidTxnList;
+import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.metastore.HiveMetaStoreClient;
import org.apache.hadoop.hive.metastore.IMetaStoreClient;
import org.apache.hadoop.hive.metastore.LockComponentBuilder;
@@ -55,6 +56,14 @@ public class DbTxnManager extends HiveTx
}
@Override
+ void setHiveConf(HiveConf conf) {
+ super.setHiveConf(conf);
+ if (!conf.getBoolVar(HiveConf.ConfVars.HIVE_SUPPORT_CONCURRENCY)) {
+ throw new RuntimeException(ErrorMsg.DBTXNMGR_REQUIRES_CONCURRENCY.getMsg());
+ }
+ }
+
+ @Override
public long openTxn(String user) throws LockException {
init();
try {
Modified: hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager.java?rev=1643885&r1=1643884&r2=1643885&view=diff
==============================================================================
--- hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager.java (original)
+++ hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager.java Mon Dec 8 18:37:18 2014
@@ -275,6 +275,21 @@ public class TestDbTxnManager {
Assert.assertNull(locks);
}
+ @Test
+ public void concurrencyFalse() throws Exception {
+ HiveConf badConf = new HiveConf();
+ badConf.setVar(HiveConf.ConfVars.HIVE_TXN_MANAGER,
+ "org.apache.hadoop.hive.ql.lockmgr.DbTxnManager");
+ badConf.setBoolVar(HiveConf.ConfVars.HIVE_SUPPORT_CONCURRENCY, false);
+ boolean sawException = false;
+ try {
+ TxnManagerFactory.getTxnManagerFactory().getTxnManager(badConf);
+ } catch (RuntimeException e) {
+ sawException = true;
+ }
+ Assert.assertTrue(sawException);
+ }
+
@Before
public void setUp() throws Exception {