Author: jing9 Date: Wed Nov 13 21:00:52 2013 New Revision: 1541709 URL: http://svn.apache.org/r1541709 Log: HDFS-5474. Merge change r1541685 from trunk.
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1541709&r1=1541708&r2=1541709&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original) +++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Wed Nov 13 21:00:52 2013 @@ -166,6 +166,9 @@ Release 2.3.0 - UNRELEASED HDFS-5425. Renaming underconstruction file with snapshots can make NN failure on restart. (jing9 and Vinay) + HDFS-5474. Deletesnapshot can make Namenode in safemode on NN restarts. + (Sathish via jing9) + HDFS-5075. httpfs-config.sh calls out incorrect env script name (Timothy St. Clair via stevel) Modified: hadoop/common/branches/branch-2/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/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java?rev=1541709&r1=1541708&r2=1541709&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java (original) +++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java Wed Nov 13 21:00:52 2013 @@ -6919,6 +6919,7 @@ public class FSNamesystem implements Nam return; // Return previous response } boolean success = false; + BlocksMapUpdateInfo collectedBlocks = new BlocksMapUpdateInfo(); writeLock(); try { checkOperation(OperationCategory.WRITE); @@ -6927,7 +6928,6 @@ public class FSNamesystem implements Nam checkOwner(pc, snapshotRoot); } - BlocksMapUpdateInfo collectedBlocks = new BlocksMapUpdateInfo(); List<INode> removedINodes = new ChunkedArrayList<INode>(); dir.writeLock(); try { @@ -6938,8 +6938,6 @@ public class FSNamesystem implements Nam dir.writeUnlock(); } removedINodes.clear(); - this.removeBlocks(collectedBlocks); - collectedBlocks.clear(); getEditLog().logDeleteSnapshot(snapshotRoot, snapshotName, cacheEntry != null); success = true; @@ -6948,7 +6946,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);