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 sz...@apache.org on 2010/07/06 19:23:27 UTC
svn commit: r960946 - in /hadoop/common/branches/branch-0.20: CHANGES.txt
src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java
src/test/org/apache/hadoop/hdfs/TestQuota.java
Author: szetszwo
Date: Tue Jul 6 17:23:27 2010
New Revision: 960946
URL: http://svn.apache.org/viewvc?rev=960946&view=rev
Log:
HDFS-1258. Clearing namespace quota on "/" corrupts fs image. Contributed by Aaron T. Myers
Modified:
hadoop/common/branches/branch-0.20/CHANGES.txt
hadoop/common/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java
hadoop/common/branches/branch-0.20/src/test/org/apache/hadoop/hdfs/TestQuota.java
Modified: hadoop/common/branches/branch-0.20/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20/CHANGES.txt?rev=960946&r1=960945&r2=960946&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.20/CHANGES.txt Tue Jul 6 17:23:27 2010
@@ -36,6 +36,9 @@ Release 0.20.3 - Unreleased
MAPREDUCE-1880. Fix BigDecimal.divide(..) in the pi example. (szetszwo)
+ HDFS-1258. Clearing namespace quota on "/" corrupts fs image.
+ (Aaron T. Myers via szetszwo)
+
IMPROVEMENTS
MAPREDUCE-1407. Update javadoc in mapreduce.{Mapper,Reducer} to match
Modified: hadoop/common/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java?rev=960946&r1=960945&r2=960946&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java (original)
+++ hadoop/common/branches/branch-0.20/src/hdfs/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java Tue Jul 6 17:23:27 2010
@@ -1244,6 +1244,8 @@ class FSDirectory implements FSConstants
throw new FileNotFoundException("Directory does not exist: " + srcs);
} else if (!targetNode.isDirectory()) {
throw new FileNotFoundException("Cannot set quota on a file: " + srcs);
+ } else if (targetNode.isRoot() && nsQuota == FSConstants.QUOTA_RESET) {
+ throw new IllegalArgumentException("Cannot clear namespace quota on root.");
} else { // a directory inode
INodeDirectory dirNode = (INodeDirectory)targetNode;
long oldNsQuota = dirNode.getNsQuota();
Modified: hadoop/common/branches/branch-0.20/src/test/org/apache/hadoop/hdfs/TestQuota.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20/src/test/org/apache/hadoop/hdfs/TestQuota.java?rev=960946&r1=960945&r2=960946&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.20/src/test/org/apache/hadoop/hdfs/TestQuota.java (original)
+++ hadoop/common/branches/branch-0.20/src/test/org/apache/hadoop/hdfs/TestQuota.java Tue Jul 6 17:23:27 2010
@@ -253,6 +253,12 @@ public class TestQuota extends TestCase
args = new String[] {"-clrQuota", parent.toString()};
runCommand(userAdmin, args, true);
runCommand(userAdmin, true, "-clrSpaceQuota", args[1]);
+
+ // 19: clrQuota on the root directory ("/") should fail
+ runCommand(admin, true, "-clrQuota", "/");
+
+ // 20: setQuota on the root directory ("/") should succeed
+ runCommand(admin, false, "-setQuota", "1000000", "/");
} finally {
cluster.shutdown();
}