[ https://issues.apache.org/jira/browse/HADOOP-4388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12645002#action_12645002 ]
Hadoop QA commented on HADOOP-4388: ----------------------------------- -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12392619/HADOOP-4388.patch against trunk revision 709609. +1 @author. The patch does not contain any @author tags. -1 tests included. The patch doesn't appear to include any new or modified tests. Please justify why no tests are needed for this patch. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs warnings. +1 Eclipse classpath. The patch retains Eclipse classpath integrity. +1 core tests. The patch passed core unit tests. +1 contrib tests. The patch passed contrib unit tests. Test results: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch/3526/testReport/ Findbugs warnings: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch/3526/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Checkstyle results: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch/3526/artifact/trunk/build/test/checkstyle-errors.html Console output: http://hudson.zones.apache.org/hudson/job/Hadoop-Patch/3526/console This message is automatically generated. > Bug in Datanode transferBlocks code > ----------------------------------- > > Key: HADOOP-4388 > URL: https://issues.apache.org/jira/browse/HADOOP-4388 > Project: Hadoop Core > Issue Type: Bug > Components: dfs > Affects Versions: 0.17.0 > Reporter: Suresh Srinivas > Assignee: Suresh Srinivas > Fix For: 0.20.0 > > Attachments: HADOOP-4388.patch, HADOOP-4388.patch, HADOOP-4388.patch, > HADOOP-4388.patch > > > In the following code, when the blocks to be transferred has an invalid > block, all the blocks that follow it are also not transferred. That might not > be the intended behavior. Instead of breaking out of the loop, perhaps the > right thing to do is to ignore the invalid block and continue with > transferring the rest. > {noformat} > private void transferBlocks( Block blocks[], > DatanodeInfo xferTargets[][] > ) throws IOException { > for (int i = 0; i < blocks.length; i++) { > if (!data.isValidBlock(blocks[i])) { > String errStr = "Can't send invalid block " + blocks[i]; > LOG.info(errStr); > namenode.errorReport(dnRegistration, > DatanodeProtocol.INVALID_BLOCK, > errStr); > // > // ******** This should be continue instead of break? > // > break; > } > int numTargets = xferTargets[i].length; > if (numTargets > 0) { > if (LOG.isInfoEnabled()) { > StringBuilder xfersBuilder = new StringBuilder(); > for (int j = 0; j < numTargets; j++) { > DatanodeInfo nodeInfo = xferTargets[i][j]; > xfersBuilder.append(nodeInfo.getName()); > if (j < (numTargets - 1)) { > xfersBuilder.append(", "); > } > } > String xfersTo = xfersBuilder.toString(); > LOG.info(dnRegistration + " Starting thread to transfer block " + > blocks[i] + " to " + xfersTo); > } > new Daemon(new DataTransfer(xferTargets[i], blocks[i], this)).start(); > } > } > } > {noformat} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.