svn merge -c 1547393 merging from trunk to branch-2 to fix: HDFS-5558. LeaseManager monitor thread can crash if the last block is complete but another block is not.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1547395 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Kihwal Lee 2013-12-03 14:14:53 +00:00
parent cd585dcc2f
commit a5c36c322b
2 changed files with 10 additions and 1 deletions

View File

@ -3698,6 +3698,9 @@ Release 0.23.10 - UNRELEASED
HDFS-5557. Write pipeline recovery for the last packet in the block may
cause rejection of valid replicas. (kihwal)
HDFS-5558. LeaseManager monitor thread can crash if the last block is
complete but another block is not. (kihwal)
Release 0.23.9 - 2013-07-08
INCOMPATIBLE CHANGES

View File

@ -2894,6 +2894,12 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
}
throw lee;
}
// Check the state of the penultimate block. It should be completed
// before attempting to complete the last one.
if (!checkFileProgress(pendingFile, false)) {
return false;
}
// commit the last block and complete it if it has minimum replicas
commitOrCompleteLastBlock(pendingFile, last);
@ -2963,7 +2969,7 @@ public class FSNamesystem implements Namesystem, FSClusterStats,
//
BlockInfo b = v.getPenultimateBlock();
if (b != null && !b.isComplete()) {
LOG.info("BLOCK* checkFileProgress: " + b
LOG.warn("BLOCK* checkFileProgress: " + b
+ " has not reached minimal replication "
+ blockManager.minReplication);
return false;