Lin Yiqun created HDFS-10336:
--------------------------------
Summary: TestBalancer failing intermittently because of not
reseting UserGroupInformation completely
Key: HDFS-10336
URL: https://issues.apache.org/jira/browse/HDFS-10336
Project: Hadoop HDFS
Issue Type: Bug
Components: test
Reporter: Lin Yiqun
Assignee: Lin Yiqun
The unit test {{TestBalancer}} failed sometimes.
I looked for the reason. I found two main reasons causing this.
* 1st. The test {{TestBalancer#testBalancerWithKeytabs}} executed timeout.
{code}
org.apache.hadoop.hdfs.server.balancer.TestBalancer
testBalancerWithKeytabs(org.apache.hadoop.hdfs.server.balancer.TestBalancer)
Time elapsed: 300.41 sec <<< ERROR!
java.lang.Exception: test timed out after 300000 milliseconds
at java.lang.Thread.sleep(Native Method)
at
org.apache.hadoop.hdfs.server.balancer.Dispatcher.waitForMoveCompletion(Dispatcher.java:1122)
at
org.apache.hadoop.hdfs.server.balancer.Dispatcher.dispatchBlockMoves(Dispatcher.java:1096)
at
org.apache.hadoop.hdfs.server.balancer.Dispatcher.dispatchAndCheckContinue(Dispatcher.java:1060)
at
org.apache.hadoop.hdfs.server.balancer.Balancer.runOneIteration(Balancer.java:635)
at
org.apache.hadoop.hdfs.server.balancer.Balancer.run(Balancer.java:689)
at
org.apache.hadoop.hdfs.server.balancer.TestBalancer.testUnknownDatanode(TestBalancer.java:1098)
at
org.apache.hadoop.hdfs.server.balancer.TestBalancer.access$000(TestBalancer.java:125)
{code}
* 2nd. The test {{TestBalancer#testBalancerWithKeytabs}} reset the {{UGI}} not
completely sometimes in the finally block. And this affected the other unit
tests threw {{IOException}}, like this:
{code}
testBalancerWithNonZeroThreadsForMove(org.apache.hadoop.hdfs.server.balancer.TestBalancer)
Time elapsed: 0 sec <<< ERROR!
java.io.IOException: Running in secure mode, but config doesn't have a keytab
at org.apache.hadoop.security.SecurityUtil.login(SecurityUtil.java:300)
{code}
And there were not only one test will be affected by this. We should add a line
to do before doing reset {{UGI}} operation and can avoid the potenial exception
happens.
{code}
UserGroupInformation.reset();
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)