diff --git a/hcatalog/core/src/test/java/org/apache/hive/hcatalog/mapreduce/TestHCatMultiOutputFormat.java b/hcatalog/core/src/test/java/org/apache/hive/hcatalog/mapreduce/TestHCatMultiOutputFormat.java index 9fa263d53596378276fabc43b7f44409b4b0ccfb..181d5af154144243b8c3a9b2162a4802a169ae8d 100644 --- a/hcatalog/core/src/test/java/org/apache/hive/hcatalog/mapreduce/TestHCatMultiOutputFormat.java +++ b/hcatalog/core/src/test/java/org/apache/hive/hcatalog/mapreduce/TestHCatMultiOutputFormat.java @@ -22,6 +22,7 @@ import java.io.File; import java.io.IOException; import java.io.OutputStream; +import java.net.Socket; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -111,7 +112,17 @@ public void run() { t.printStackTrace(); } } - + public static void start() throws InterruptedException { + new Thread(new RunMS()).start(); + while(true) { + try{ + new Socket("localhost", Integer.parseInt(msPort)); + return; + } catch (IOException e) { + Thread.sleep(1000); + } + } + } } /** @@ -174,8 +185,7 @@ public static void setup() throws Exception { warehousedir = new Path(System.getProperty("test.warehouse.dir")); // Run hive metastore server - t = new Thread(new RunMS()); - t.start(); + RunMS.start(); // LocalJobRunner does not work with mapreduce OutputCommitter. So need // to use MiniMRCluster. MAPREDUCE-2350 diff --git a/hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java b/hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java index aa9c7d31f2cbe187e84bfddfe411da1f49943819..4313fce8017c4dbb07e176b1bac3b18f92f6df76 100644 --- a/hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java +++ b/hcatalog/webhcat/java-client/src/test/java/org/apache/hive/hcatalog/api/TestHCatClient.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.math.BigInteger; +import java.net.Socket; import java.util.ArrayList; import java.util.Arrays; import java.util.EnumSet; @@ -116,6 +117,19 @@ public void run() { LOG.error("Exiting. Got exception from metastore: ", t); } } + public static void start(String port) throws InterruptedException { + Thread t = new Thread(new RunMS(port)); + t.setDaemon(true); + t.start(); + while(true) { + try{ + new Socket("localhost", Integer.parseInt(port)); + return; + } catch (IOException e) { + Thread.sleep(1000); + } + } + } } // class RunMS; @AfterClass @@ -142,10 +156,7 @@ public static void startMetaStoreServer() throws Exception { System.setProperty(HiveConf.ConfVars.METASTORE_EVENT_LISTENERS.varname, DbNotificationListener.class.getName()); // turn on db notification listener on metastore - Thread t = new Thread(new RunMS(msPort)); - t.start(); - Thread.sleep(10000); - + RunMS.start(msPort); securityManager = System.getSecurityManager(); System.setSecurityManager(new NoExitSecurityManager()); hcatConf.setVar(HiveConf.ConfVars.METASTOREURIS, "thrift://localhost:" diff --git a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/TestMarkPartitionRemote.java b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/TestMarkPartitionRemote.java index 7576f3923c7ae2e144263445d0a69e5424489567..d8abf0ff9405f2e4661a50854f9b300e23b1170f 100644 --- a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/TestMarkPartitionRemote.java +++ b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/TestMarkPartitionRemote.java @@ -18,6 +18,9 @@ package org.apache.hadoop.hive.metastore; +import java.io.IOException; +import java.net.Socket; + import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.metastore.MetaStoreUtils; @@ -39,17 +42,26 @@ public void run() { assert false; } } - + public static void start(int port) throws InterruptedException { + Thread t = new Thread(new RunMS(port)); + t.setDaemon(true); + t.start(); + while(true) { + try{ + new Socket("localhost", port); + return; + } catch (IOException e) { + Thread.sleep(1000); + } + } + } } @Override protected void setUp() throws Exception { super.setUp(); int port = MetaStoreUtils.findFreePort(); - Thread t = new Thread(new RunMS(port)); - t.setDaemon(true); - t.start(); + RunMS.start(port); hiveConf.setVar(HiveConf.ConfVars.METASTOREURIS, "thrift://localhost:" + port); hiveConf.setIntVar(HiveConf.ConfVars.METASTORETHRIFTCONNECTIONRETRIES, 3); - Thread.sleep(30000); } } diff --git a/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStoreGetMetaConf.java b/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStoreGetMetaConf.java index 3f4561cc4b2a737f18e274779d6e748dcd3abad0..00b973364f7a07dae83473effd0dec879171296e 100644 --- a/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStoreGetMetaConf.java +++ b/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStoreGetMetaConf.java @@ -18,6 +18,9 @@ package org.apache.hadoop.hive.metastore; +import java.io.IOException; +import java.net.Socket; +import java.net.UnknownHostException; import java.security.Permission; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.metastore.api.MetaException; @@ -76,6 +79,19 @@ public void run() { } catch (Throwable t) { LOG.error("Exiting. Got exception from metastore: ", t); } + + } + + public static void start() throws InterruptedException { + new Thread(new RunMS()).start(); + while(true) { + try{ + new Socket("localhost", Integer.parseInt(msPort)); + return; + } catch (IOException e) { + Thread.sleep(1000); + } + } } } @@ -101,8 +117,7 @@ public static void startMetaStoreServer() throws Exception { System.setProperty(HiveConf.ConfVars.PREEXECHOOKS.varname, " "); System.setProperty(HiveConf.ConfVars.POSTEXECHOOKS.varname, " "); - - new Thread(new RunMS()).start(); + RunMS.start(); } @Before diff --git a/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStorePartitionSpecs.java b/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStorePartitionSpecs.java index 922a4bf11cbc5693cc5753b8488c5ae3085dd3f4..cc5fe65c8ae795e358a844e54234961e7a98fc5d 100644 --- a/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStorePartitionSpecs.java +++ b/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStorePartitionSpecs.java @@ -36,6 +36,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.IOException; +import java.net.Socket; import java.security.Permission; import java.util.ArrayList; import java.util.Arrays; @@ -84,6 +86,18 @@ public void run() { LOG.error("Exiting. Got exception from metastore: ", t); } } + + public static void start() throws InterruptedException { + new Thread(new RunMS()).start(); + while(true) { + try{ + new Socket("localhost", Integer.parseInt(msPort)); + return; + } catch (IOException e) { + Thread.sleep(1000); + } + } + } } @AfterClass @@ -95,9 +109,7 @@ public static void tearDown() throws Exception { @BeforeClass public static void startMetaStoreServer() throws Exception { - Thread t = new Thread(new RunMS()); - t.start(); - Thread.sleep(10000); + RunMS.start(); securityManager = System.getSecurityManager(); System.setSecurityManager(new NoExitSecurityManager()); diff --git a/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHiveRemote.java b/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHiveRemote.java index ee95e160c858a93c43f96775b360f28f8d6a178f..3d6b9e294262c981eec654aa85f9f0080ab586d2 100644 --- a/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHiveRemote.java +++ b/ql/src/test/org/apache/hadoop/hive/ql/metadata/TestHiveRemote.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.net.ServerSocket; +import java.net.Socket; import org.apache.hadoop.hive.conf.HiveConf; import org.apache.hadoop.hive.metastore.HiveMetaStore; @@ -53,6 +54,17 @@ public void run() { } } + public static void start(String freePort) throws InterruptedException { + new Thread(new RunMS(freePort)).start(); + while(true) { + try{ + new Socket("localhost", Integer.parseInt(freePort)); + return; + } catch (IOException e) { + Thread.sleep(1000); + } + } + } } /** @@ -65,11 +77,7 @@ protected void setUp() throws Exception { String port = findFreePort(); hiveConf.setVar(HiveConf.ConfVars.METASTOREURIS, "thrift://localhost:" + port); - Thread t = new Thread(new RunMS(port)); - t.start(); - - // Wait a little bit for the metastore to start. - Thread.sleep(5000); + RunMS.start(port); try {