HDFS-5474. Deletesnapshot can make Namenode in safemode on NN restarts. Contributed by Sathish.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1541685 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4a0f804d5e
commit
ced740e580
@ -541,6 +541,9 @@ Release 2.3.0 - UNRELEASED
|
|||||||
HDFS-5425. Renaming underconstruction file with snapshots can make NN failure on
|
HDFS-5425. Renaming underconstruction file with snapshots can make NN failure on
|
||||||
restart. (jing9 and Vinay)
|
restart. (jing9 and Vinay)
|
||||||
|
|
||||||
|
HDFS-5474. Deletesnapshot can make Namenode in safemode on NN restarts.
|
||||||
|
(Sathish via jing9)
|
||||||
|
|
||||||
Release 2.2.1 - UNRELEASED
|
Release 2.2.1 - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
@ -6961,6 +6961,7 @@ void deleteSnapshot(String snapshotRoot, String snapshotName)
|
|||||||
return; // Return previous response
|
return; // Return previous response
|
||||||
}
|
}
|
||||||
boolean success = false;
|
boolean success = false;
|
||||||
|
BlocksMapUpdateInfo collectedBlocks = new BlocksMapUpdateInfo();
|
||||||
writeLock();
|
writeLock();
|
||||||
try {
|
try {
|
||||||
checkOperation(OperationCategory.WRITE);
|
checkOperation(OperationCategory.WRITE);
|
||||||
@ -6969,7 +6970,6 @@ void deleteSnapshot(String snapshotRoot, String snapshotName)
|
|||||||
checkOwner(pc, snapshotRoot);
|
checkOwner(pc, snapshotRoot);
|
||||||
}
|
}
|
||||||
|
|
||||||
BlocksMapUpdateInfo collectedBlocks = new BlocksMapUpdateInfo();
|
|
||||||
List<INode> removedINodes = new ChunkedArrayList<INode>();
|
List<INode> removedINodes = new ChunkedArrayList<INode>();
|
||||||
dir.writeLock();
|
dir.writeLock();
|
||||||
try {
|
try {
|
||||||
@ -6980,8 +6980,6 @@ void deleteSnapshot(String snapshotRoot, String snapshotName)
|
|||||||
dir.writeUnlock();
|
dir.writeUnlock();
|
||||||
}
|
}
|
||||||
removedINodes.clear();
|
removedINodes.clear();
|
||||||
this.removeBlocks(collectedBlocks);
|
|
||||||
collectedBlocks.clear();
|
|
||||||
getEditLog().logDeleteSnapshot(snapshotRoot, snapshotName,
|
getEditLog().logDeleteSnapshot(snapshotRoot, snapshotName,
|
||||||
cacheEntry != null);
|
cacheEntry != null);
|
||||||
success = true;
|
success = true;
|
||||||
@ -6990,7 +6988,10 @@ void deleteSnapshot(String snapshotRoot, String snapshotName)
|
|||||||
RetryCache.setState(cacheEntry, success);
|
RetryCache.setState(cacheEntry, success);
|
||||||
}
|
}
|
||||||
getEditLog().logSync();
|
getEditLog().logSync();
|
||||||
|
|
||||||
|
removeBlocks(collectedBlocks);
|
||||||
|
collectedBlocks.clear();
|
||||||
|
|
||||||
if (auditLog.isInfoEnabled() && isExternalInvocation()) {
|
if (auditLog.isInfoEnabled() && isExternalInvocation()) {
|
||||||
String rootPath = Snapshot.getSnapshotPath(snapshotRoot, snapshotName);
|
String rootPath = Snapshot.getSnapshotPath(snapshotRoot, snapshotName);
|
||||||
logAuditEvent(true, "deleteSnapshot", rootPath, null, null);
|
logAuditEvent(true, "deleteSnapshot", rootPath, null, null);
|
||||||
|
Loading…
Reference in New Issue
Block a user