[
https://issues.apache.org/jira/browse/HIVE-1829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12977703#action_12977703
]
Carl Steinbach commented on HIVE-1829:
--------------------------------------
Ashutosh's hunch is right -- this doesn't have anything to do with multiple IPs.
The problem is caused by the setUp method in TestRemoteHiveMetaStore:
{code:java}
protected void setUp() throws Exception {
super.setUp();
if(isServerRunning) {
return;
}
Thread t = new Thread(new RunMS());
t.start();
// Wait a little bit for the metastore to start. Should probably have
// a better way of detecting if the metastore has started?
Thread.sleep(5000);
// ...
client = new HiveMetaStoreClient(hiveConf);
isThriftClient = true;
// Now you have the client - run necessary tests.
isServerRunning = true;
}
{code}
JUnit calls this method once before running each testcase, and if setUp()
throws an
exception it will fail the current test before continuing onto the next one.
On slow machines it can take longer than 5 seconds for the MetaStore server
process
to initialize and open a listening socket (RunMS()). When this happens the
HiveMetaStoreClient constructor fails with an exception that causes setUp to
exit before
setting isServerRunning to true. JUnit then fails the current testcase and
immediately begins initializing
the next testcase, which results in another call to setUp(). Since
isServerRunning is still false
we end up starting another MetaStore server thread which will attempt to open a
listening
socket on the same port as the first thread, which is what causes the
TTransportException
that you see in the log above.
> TestRemoteMetaStore fails if machine has multiple IPs
> -----------------------------------------------------
>
> Key: HIVE-1829
> URL: https://issues.apache.org/jira/browse/HIVE-1829
> Project: Hive
> Issue Type: Bug
> Components: Metastore
> Affects Versions: 0.6.0
> Reporter: Edward Capriolo
>
> Notice how Running metastore! appears twice.
> {noformat}
> test:
> [junit] Running org.apache.hadoop.hive.metastore.TestEmbeddedHiveMetaStore
> [junit] BR.recoverFromMismatchedToken
> [junit] Tests run: 11, Failures: 0, Errors: 0, Time elapsed: 36.697 sec
> [junit] Running org.apache.hadoop.hive.metastore.TestRemoteHiveMetaStore
> [junit] Running metastore!
> [junit] Running metastore!
> [junit] org.apache.thrift.transport.TTransportException: Could not create
> ServerSocket on address 0.0.0.0/0.0.0.0:29083.
> [junit] at
> org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:98)
> [junit] at
> org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:79)
> [junit] at
> org.apache.hadoop.hive.metastore.TServerSocketKeepAlive.<init>(TServerSocketKeepAlive.java:34)
> [junit] at
> org.apache.hadoop.hive.metastore.HiveMetaStore.main(HiveMetaStore.java:2189)
> [junit] at
> org.apache.hadoop.hive.metastore.TestRemoteHiveMetaStore$RunMS.run(TestRemoteHiveMetaStore.java:35)
> [junit] at java.lang.Thread.run(Thread.java:619)
> [junit] Running org.apache.hadoop.hive.metastore.TestRemoteHiveMetaStore
> [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
> [junit] Test org.apache.hadoop.hive.metastore.TestRemoteHiveMetaStore
> FAILED (crashed)
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.