You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by su...@apache.org on 2016/10/25 02:26:13 UTC
[03/50] [abbrv] hadoop git commit: HDFS-11018. Incorrect check and
message in FsDatasetImpl#invalidate. Contributed by Yiqun Lin.
HDFS-11018. Incorrect check and message in FsDatasetImpl#invalidate. Contributed by Yiqun Lin.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/6d2da38d
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/6d2da38d
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/6d2da38d
Branch: refs/heads/YARN-2915
Commit: 6d2da38d16cebe9b82f1048f87127eecee33664c
Parents: f872c6b
Author: Wei-Chiu Chuang <we...@apache.org>
Authored: Thu Oct 20 10:49:39 2016 -0700
Committer: Wei-Chiu Chuang <we...@apache.org>
Committed: Thu Oct 20 10:56:39 2016 -0700
----------------------------------------------------------------------
.../datanode/fsdataset/impl/FsDatasetImpl.java | 31 +++++++++++++-------
1 file changed, 21 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/6d2da38d/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java
index ba653ac..84569f3 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/FsDatasetImpl.java
@@ -786,8 +786,14 @@ class FsDatasetImpl implements FsDatasetSpi<FsVolumeImpl> {
throws ReplicaNotFoundException {
ReplicaInfo info = volumeMap.get(b.getBlockPoolId(), b.getLocalBlock());
if (info == null) {
- throw new ReplicaNotFoundException(
- ReplicaNotFoundException.NON_EXISTENT_REPLICA + b);
+ if (volumeMap.get(b.getBlockPoolId(), b.getLocalBlock().getBlockId())
+ == null) {
+ throw new ReplicaNotFoundException(
+ ReplicaNotFoundException.NON_EXISTENT_REPLICA + b);
+ } else {
+ throw new ReplicaNotFoundException(
+ ReplicaNotFoundException.UNEXPECTED_GS_REPLICA + b);
+ }
}
return info;
}
@@ -1878,16 +1884,21 @@ class FsDatasetImpl implements FsDatasetSpi<FsVolumeImpl> {
try (AutoCloseableLock lock = datasetLock.acquire()) {
final ReplicaInfo info = volumeMap.get(bpid, invalidBlks[i]);
if (info == null) {
- // It is okay if the block is not found -- it may be deleted earlier.
- LOG.info("Failed to delete replica " + invalidBlks[i]
- + ": ReplicaInfo not found.");
- continue;
- }
- if (info.getGenerationStamp() != invalidBlks[i].getGenerationStamp()) {
- errors.add("Failed to delete replica " + invalidBlks[i]
- + ": GenerationStamp not matched, info=" + info);
+ ReplicaInfo infoByBlockId =
+ volumeMap.get(bpid, invalidBlks[i].getBlockId());
+ if (infoByBlockId == null) {
+ // It is okay if the block is not found -- it
+ // may be deleted earlier.
+ LOG.info("Failed to delete replica " + invalidBlks[i]
+ + ": ReplicaInfo not found.");
+ } else {
+ errors.add("Failed to delete replica " + invalidBlks[i]
+ + ": GenerationStamp not matched, existing replica is "
+ + Block.toString(infoByBlockId));
+ }
continue;
}
+
v = (FsVolumeImpl)info.getVolume();
if (v == null) {
errors.add("Failed to delete replica " + invalidBlks[i]
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org