hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-6552) add DN storage to a BlockInfo will not replace the different storage from same DN
Date Wed, 18 Jun 2014 19:50:26 GMT

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

Hudson commented on HDFS-6552:
------------------------------

SUCCESS: Integrated in Hadoop-trunk-Commit #5726 (See [https://builds.apache.org/job/Hadoop-trunk-Commit/5726/])
HDFS-6552. add DN storage to a BlockInfo will not replace the different storage from same
DN. (Contributed by Amir Langer) (arp: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1603602)
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfo.java
* /hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockInfo.java


> add DN storage to a BlockInfo will not replace the different storage from same DN
> ---------------------------------------------------------------------------------
>
>                 Key: HDFS-6552
>                 URL: https://issues.apache.org/jira/browse/HDFS-6552
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: namenode
>    Affects Versions: 2.3.0, 2.4.0
>            Reporter: Amir Langer
>            Priority: Trivial
>             Fix For: 3.0.0, 2.5.0
>
>         Attachments: HDFS-6552.patch
>
>
> In BlockInfo - addStorage code looks wrong.
> At line 10 (below) - we remove the storage we're about to add from the list of storages,
then add it. 
> If the aim was to replace the different storage that was there the line should have been:
> {code:java}
> removeStorage(getStorageInfo(idx));
> {code}
> method code:
> {code:java}
> 1 boolean addStorage(DatanodeStorageInfo storage) {
> 2   boolean added = true;
> 3    int idx = findDatanode(storage.getDatanodeDescriptor());
> 4   if(idx >= 0) {
> 5      if (getStorageInfo(idx) == storage) { // the storage is already there
> 6        return false;
> 7      } else {
> 8        // The block is on the DN but belongs to a different storage.
> 9        // Update our state.
> 10        removeStorage(storage);
> 11        added = false;      // Just updating storage. Return false.
> 12     }
> 13  }
> 14  // find the last null node
> 15  int lastNode = ensureCapacity(1);
> 16  setStorageInfo(lastNode, storage);
> 17  setNext(lastNode, null);
> 18  setPrevious(lastNode, null);
> 19  return added;
> 20}
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message