[ 
https://issues.apache.org/jira/browse/HADOOP-9714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xi Fang updated HADOOP-9714:
----------------------------

    Description: 
TestReplicationPolicy failed on 
* testChooseTargetWithMoreThanAvailableNodes()
* testChooseTargetWithStaleNodes()
* testChooseTargetWithHalfStaleNodes()

The root of cause of testChooseTargetWithMoreThanAvailableNodes failing is the 
following:
In BlockPlacementPolicyDefault#chooseTarget()
{code}
  chooseRandom(numOfReplicas, NodeBase.ROOT, excludedNodes, 
        blocksize, maxNodesPerRack, results);
    } catch (NotEnoughReplicasException e) {
      FSNamesystem.LOG.warn("Not able to place enough replicas, still in need 
of " + numOfReplicas);
{code}
However, numOfReplicas is passed into chooseRandom() as int (primitive type in 
java) by value. The updating operation for numOfReplicas in chooseRandom() will 
not change the value in chooseTarget(). 

The root cause for testChooseTargetWithStaleNodes() and 
testChooseTargetWithHalfStaleNodes() is the current 
BlockPlacementPolicyDefault#chooseTarget() doesn't check if a node is stale.  

  was:
Condor-Branch-1 TestReplicationPolicy failed on 
* testChooseTargetWithMoreThanAvailableNodes()
* testChooseTargetWithStaleNodes()
* testChooseTargetWithHalfStaleNodes()

The root of cause of testChooseTargetWithMoreThanAvailableNodes failing is the 
following:
In BlockPlacementPolicyDefault#chooseTarget()
{code}
  chooseRandom(numOfReplicas, NodeBase.ROOT, excludedNodes, 
        blocksize, maxNodesPerRack, results);
    } catch (NotEnoughReplicasException e) {
      FSNamesystem.LOG.warn("Not able to place enough replicas, still in need 
of " + numOfReplicas);
{code}
However, numOfReplicas is passed into chooseRandom() as int (primitive type in 
java) by value. The updating operation for numOfReplicas in chooseRandom() will 
not change the value in chooseTarget(). 

The root cause for testChooseTargetWithStaleNodes() and 
testChooseTargetWithHalfStaleNodes() is the current 
BlockPlacementPolicyDefault#chooseTarget() doesn't check if a node is stale.  

    
> Branch-1-win TestReplicationPolicy failed caused by stale data node handling
> ----------------------------------------------------------------------------
>
>                 Key: HADOOP-9714
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9714
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 1-win
>            Reporter: Xi Fang
>            Assignee: Xi Fang
>             Fix For: 1-win
>
>         Attachments: HADOOP-9714.1.patch
>
>
> TestReplicationPolicy failed on 
> * testChooseTargetWithMoreThanAvailableNodes()
> * testChooseTargetWithStaleNodes()
> * testChooseTargetWithHalfStaleNodes()
> The root of cause of testChooseTargetWithMoreThanAvailableNodes failing is 
> the following:
> In BlockPlacementPolicyDefault#chooseTarget()
> {code}
>   chooseRandom(numOfReplicas, NodeBase.ROOT, excludedNodes, 
>         blocksize, maxNodesPerRack, results);
>     } catch (NotEnoughReplicasException e) {
>       FSNamesystem.LOG.warn("Not able to place enough replicas, still in need 
> of " + numOfReplicas);
> {code}
> However, numOfReplicas is passed into chooseRandom() as int (primitive type 
> in java) by value. The updating operation for numOfReplicas in chooseRandom() 
> will not change the value in chooseTarget(). 
> The root cause for testChooseTargetWithStaleNodes() and 
> testChooseTargetWithHalfStaleNodes() is the current 
> BlockPlacementPolicyDefault#chooseTarget() doesn't check if a node is stale.  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to