Author: jing9 Date: Wed Dec 11 02:08:39 2013 New Revision: 1550028 URL: http://svn.apache.org/r1550028 Log: HDFS-5474. Merge change r1541709 from branch-2.
Modified: hadoop/common/branches/branch-2.3/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt hadoop/common/branches/branch-2.3/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java Modified: hadoop/common/branches/branch-2.3/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.3/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1550028&r1=1550027&r2=1550028&view=diff ============================================================================== --- hadoop/common/branches/branch-2.3/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original) +++ hadoop/common/branches/branch-2.3/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Wed Dec 11 02:08:39 2013 @@ -160,6 +160,9 @@ Release 2.3.0 - UNRELEASED HDFS-5074. Allow starting up from an fsimage checkpoint in the middle of a segment. (Todd Lipcon via atm) + HDFS-5474. Deletesnapshot can make Namenode in safemode on NN restarts. + (Sathish via jing9) + Release 2.2.0 - 2013-10-13 INCOMPATIBLE CHANGES Modified: hadoop/common/branches/branch-2.3/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2.3/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java?rev=1550028&r1=1550027&r2=1550028&view=diff ============================================================================== --- hadoop/common/branches/branch-2.3/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java (original) +++ hadoop/common/branches/branch-2.3/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java Wed Dec 11 02:08:39 2013 @@ -6706,6 +6706,7 @@ public class FSNamesystem implements Nam return; // Return previous response } boolean success = false; + BlocksMapUpdateInfo collectedBlocks = new BlocksMapUpdateInfo(); writeLock(); try { checkOperation(OperationCategory.WRITE); @@ -6714,7 +6715,6 @@ public class FSNamesystem implements Nam checkOwner(pc, snapshotRoot); } - BlocksMapUpdateInfo collectedBlocks = new BlocksMapUpdateInfo(); List<INode> removedINodes = new ArrayList<INode>(); dir.writeLock(); try { @@ -6725,8 +6725,6 @@ public class FSNamesystem implements Nam dir.writeUnlock(); } removedINodes.clear(); - this.removeBlocks(collectedBlocks); - collectedBlocks.clear(); getEditLog().logDeleteSnapshot(snapshotRoot, snapshotName, cacheEntry != null); success = true; @@ -6735,7 +6733,10 @@ public class FSNamesystem implements Nam RetryCache.setState(cacheEntry, success); } getEditLog().logSync(); - + + removeBlocks(collectedBlocks); + collectedBlocks.clear(); + if (auditLog.isInfoEnabled() && isExternalInvocation()) { String rootPath = Snapshot.getSnapshotPath(snapshotRoot, snapshotName); logAuditEvent(true, "deleteSnapshot", rootPath, null, null);