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)

Reply via email to