[ 
https://issues.apache.org/jira/browse/HDFS-13155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16475407#comment-16475407
 ] 

Zsolt Venczel edited comment on HDFS-13155 at 5/15/18 7:29 AM:
---------------------------------------------------------------

Failed unit tests seem to be unrelated.

The logic is covered by tests already. This fix improves the robustness of the 
underlying logic when used in the future under different circumstances.


was (Author: zvenczel):
Failed unit tests seem to be unrelated.

The logic is covered by tests already. This fix improves the robustness of the 
underlying API when used in the future under different circumstances.

> BlockPlacementPolicyDefault.chooseTargetInOrder Not Checking Return Value for 
> NULL
> ----------------------------------------------------------------------------------
>
>                 Key: HDFS-13155
>                 URL: https://issues.apache.org/jira/browse/HDFS-13155
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: namenode
>    Affects Versions: 3.0.0
>            Reporter: BELUGA BEHR
>            Assignee: Zsolt Venczel
>            Priority: Minor
>         Attachments: HDFS-13155.01.patch
>
>
> {code:title=BlockPlacementPolicyDefault.java}
> protected Node chooseTargetInOrder(int numOfReplicas, 
>                                  Node writer,
>                                  final Set<Node> excludedNodes,
>                                  final long blocksize,
>                                  final int maxNodesPerRack,
>                                  final List<DatanodeStorageInfo> results,
>                                  final boolean avoidStaleNodes,
>                                  final boolean newBlock,
>                                  EnumMap<StorageType, Integer> storageTypes)
>                                  throws NotEnoughReplicasException {
>     final int numOfResults = results.size();
>     if (numOfResults == 0) {
>       writer = chooseLocalStorage(writer, excludedNodes, blocksize,
>           maxNodesPerRack, results, avoidStaleNodes, storageTypes, true)
>           .getDatanodeDescriptor();
>       if (--numOfReplicas == 0) {
>         return writer;
>       }
>     }
> ...
> {code}
> The method {{chooseLocalStorage}} can return a _null_ value but it's not 
> being checked here and the method {{getDatanodeDescriptor()}} is immediately 
> being called on the result.  Please check for a _null_ value first.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to