[
https://issues.apache.org/jira/browse/HDFS-6552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14035492#comment-14035492
]
Hadoop QA commented on HDFS-6552:
---------------------------------
{color:green}+1 overall{color}. Here are the results of testing the latest
attachment
http://issues.apache.org/jira/secure/attachment/12650973/HDFS-6552.patch
against trunk revision .
{color:green}+1 @author{color}. The patch does not contain any @author
tags.
{color:green}+1 tests included{color}. The patch appears to include 1 new
or modified test files.
{color:green}+1 javac{color}. The applied patch does not increase the
total number of javac compiler warnings.
{color:green}+1 javadoc{color}. There were no new javadoc warning messages.
{color:green}+1 eclipse:eclipse{color}. The patch built with
eclipse:eclipse.
{color:green}+1 findbugs{color}. The patch does not introduce any new
Findbugs (version 1.3.9) warnings.
{color:green}+1 release audit{color}. The applied patch does not increase
the total number of release audit warnings.
{color:green}+1 core tests{color}. The patch passed unit tests in
hadoop-hdfs-project/hadoop-hdfs.
{color:green}+1 contrib tests{color}. The patch passed contrib unit tests.
Test results:
https://builds.apache.org/job/PreCommit-HDFS-Build/7157//testReport/
Console output: https://builds.apache.org/job/PreCommit-HDFS-Build/7157//console
This message is automatically generated.
> 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: Heterogeneous Storage (HDFS-2832)
>
> 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)