diff --git standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/utils/MetaStoreServerUtils.java standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/utils/MetaStoreServerUtils.java index ea4e39458d..50477376dd 100644 --- standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/utils/MetaStoreServerUtils.java +++ standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/utils/MetaStoreServerUtils.java @@ -112,6 +112,8 @@ private static final Charset ENCODING = StandardCharsets.UTF_8; private static final Logger LOG = LoggerFactory.getLogger(MetaStoreServerUtils.class); + public static final String JUNIT_DATABASE_PREFIX = "junit_metastore_db"; + /** * Helper function to transform Nulls to empty strings. */ diff --git standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/MetaStoreTestUtils.java standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/MetaStoreTestUtils.java index 412314c29a..92ce3514df 100644 --- standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/MetaStoreTestUtils.java +++ standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/MetaStoreTestUtils.java @@ -40,6 +40,7 @@ import org.apache.hadoop.hive.metastore.conf.MetastoreConf.ConfVars; import org.apache.hadoop.hive.metastore.events.EventCleanerTask; import org.apache.hadoop.hive.metastore.security.HadoopThriftAuthBridge; +import org.apache.hadoop.hive.metastore.utils.MetaStoreServerUtils; import org.apache.thrift.TException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -154,7 +155,7 @@ public static int startMetaStoreWithRetry(HadoopThriftAuthBridge bridge, if (!keepJdbcUri) { // Setting metastore instance specific jdbc url postfixed with port jdbcUrl = "jdbc:derby:;databaseName=" + TMP_DIR + File.separator - + "junit_metastore_db_" + metaStorePort + ";create=true"; + + MetaStoreServerUtils.JUNIT_DATABASE_PREFIX + "_" + metaStorePort + ";create=true"; MetastoreConf.setVar(conf, ConfVars.CONNECT_URL_KEY, jdbcUrl); } diff --git standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java index 0e814bcdf7..1f7f69a86a 100644 --- standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java +++ standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestObjectStore.java @@ -60,11 +60,13 @@ import org.apache.hadoop.hive.metastore.client.builder.PrivilegeGrantInfoBuilder; import org.apache.hadoop.hive.metastore.client.builder.TableBuilder; import org.apache.hadoop.hive.metastore.conf.MetastoreConf; +import org.apache.hadoop.hive.metastore.conf.MetastoreConf.ConfVars; import org.apache.hadoop.hive.metastore.messaging.EventMessage; import org.apache.hadoop.hive.metastore.metrics.Metrics; import org.apache.hadoop.hive.metastore.metrics.MetricsConstants; import org.apache.hadoop.hive.metastore.model.MNotificationLog; import org.apache.hadoop.hive.metastore.model.MNotificationNextId; +import org.apache.hadoop.hive.metastore.utils.MetaStoreServerUtils; import org.junit.Assert; import org.junit.Assume; import org.junit.Before; @@ -90,6 +92,7 @@ import java.util.List; import java.util.Random; import java.util.Set; +import java.util.UUID; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.Callable; import java.util.concurrent.CyclicBarrier; @@ -136,12 +139,23 @@ public void setUp() throws Exception { MetastoreConf.setBoolVar(conf, MetastoreConf.ConfVars.HIVE_IN_TEST, true); MetaStoreTestUtils.setConfForStandloneMode(conf); + setupRandomObjectStoreUrl(); + Deadline.registerIfNot(100000); + objectStore = new ObjectStore(); objectStore.setConf(conf); - dropAllStoreObjects(objectStore); + HiveMetaStore.HMSHandler.createDefaultCatalog(objectStore, new Warehouse(conf)); } + private void setupRandomObjectStoreUrl(){ + String currentUrl = MetastoreConf.getVar(conf, ConfVars.CONNECT_URL_KEY); + currentUrl = currentUrl.replace(MetaStoreServerUtils.JUNIT_DATABASE_PREFIX, + String.format("%s_%s", MetaStoreServerUtils.JUNIT_DATABASE_PREFIX, UUID.randomUUID().toString())); + + MetastoreConf.setVar(conf, ConfVars.CONNECT_URL_KEY, currentUrl); + } + @After public void tearDown() throws Exception { // Clear the SSL system properties before each test. @@ -759,6 +773,7 @@ protected Database getJdoResult(ObjectStore.GetHelper ctx) throws Meta Assert.assertEquals(1, directSqlErrors.getCount()); } + @Deprecated private static void dropAllStoreObjects(RawStore store) throws MetaException, InvalidObjectException, InvalidInputException { try { diff --git standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/MetaStoreFactoryForTests.java standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/MetaStoreFactoryForTests.java index 55ef1533e2..53816787fb 100644 --- standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/MetaStoreFactoryForTests.java +++ standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/client/MetaStoreFactoryForTests.java @@ -24,6 +24,7 @@ import org.apache.hadoop.hive.metastore.conf.MetastoreConf; import org.apache.hadoop.hive.metastore.minihms.AbstractMetaStoreService; import org.apache.hadoop.hive.metastore.minihms.MiniHMS; +import org.apache.hadoop.hive.metastore.utils.MetaStoreServerUtils; import java.util.ArrayList; import java.util.List; @@ -87,7 +88,8 @@ private MetaStoreFactoryForTests() {} // Create Embedded MetaStore conf.set("javax.jdo.option.ConnectionURL", - "jdbc:derby:memory:${test.tmp.dir}/junit_metastore_db1;create=true"); + "jdbc:derby:memory:${test.tmp.dir}/" + MetaStoreServerUtils.JUNIT_DATABASE_PREFIX + + "1;create=true"); MetastoreConf.setBoolVar(conf, MetastoreConf.ConfVars.TRY_DIRECT_SQL, false); AbstractMetaStoreService embedded = new MiniHMS.Builder() @@ -98,7 +100,8 @@ private MetaStoreFactoryForTests() {} // Create Remote MetaStore conf.set("javax.jdo.option.ConnectionURL", - "jdbc:derby:memory:${test.tmp.dir}/junit_metastore_db2;create=true"); + "jdbc:derby:memory:${test.tmp.dir}/" + MetaStoreServerUtils.JUNIT_DATABASE_PREFIX + + "2;create=true"); MetastoreConf.setBoolVar(conf, MetastoreConf.ConfVars.TRY_DIRECT_SQL, true); AbstractMetaStoreService remote = new MiniHMS.Builder() diff --git standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/utils/TestMetaStoreServerUtils.java standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/utils/TestMetaStoreServerUtils.java index c185324b21..c6ae77c0bf 100644 --- standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/utils/TestMetaStoreServerUtils.java +++ standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/utils/TestMetaStoreServerUtils.java @@ -838,7 +838,8 @@ public void testAnonymizeConnectionURL() { result = MetaStoreServerUtils.anonymizeConnectionURL(connectionURL); assertEquals(expectedConnectionURL, result); - connectionURL = "jdbc:derby:memory:${test.tmp.dir}/junit_metastore_db;create=true"; + connectionURL = "jdbc:derby:memory:${test.tmp.dir}/" + + MetaStoreServerUtils.JUNIT_DATABASE_PREFIX + ";create=true"; result = MetaStoreServerUtils.anonymizeConnectionURL(connectionURL); assertEquals(connectionURL, result); }