You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by sz...@apache.org on 2010/07/06 19:25:39 UTC
svn commit: r960949 - in /hadoop/hdfs/trunk: CHANGES.txt
src/java/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java
src/test/hdfs/org/apache/hadoop/hdfs/TestQuota.java
Author: szetszwo
Date: Tue Jul 6 17:25:39 2010
New Revision: 960949
URL: http://svn.apache.org/viewvc?rev=960949&view=rev
Log:
HDFS-1258. Clearing namespace quota on "/" corrupts fs image. Contributed by Aaron T. Myers
Modified:
hadoop/hdfs/trunk/CHANGES.txt
hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java
hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestQuota.java
Modified: hadoop/hdfs/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/CHANGES.txt?rev=960949&r1=960948&r2=960949&view=diff
==============================================================================
--- hadoop/hdfs/trunk/CHANGES.txt (original)
+++ hadoop/hdfs/trunk/CHANGES.txt Tue Jul 6 17:25:39 2010
@@ -1043,6 +1043,9 @@ Release 0.20.3 - Unreleased
HDFS-909. Wait until edits syncing is finishes before purging edits.
(Todd Lipcon via shv)
+ HDFS-1258. Clearing namespace quota on "/" corrupts fs image.
+ (Aaron T. Myers via szetszwo)
+
Release 0.20.2 - Unreleased
IMPROVEMENTS
Modified: hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java?rev=960949&r1=960948&r2=960949&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java (original)
+++ hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/namenode/FSDirectory.java Tue Jul 6 17:25:39 2010
@@ -1699,6 +1699,8 @@ class FSDirectory implements Closeable {
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/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestQuota.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestQuota.java?rev=960949&r1=960948&r2=960949&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestQuota.java (original)
+++ hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestQuota.java Tue Jul 6 17:25:39 2010
@@ -268,6 +268,12 @@ public class TestQuota extends TestCase
return null;
}
});
+
+ // 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();
}