You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "Shashikant Banerjee (JIRA)" <ji...@apache.org> on 2019/05/21 10:32:00 UTC

[jira] [Created] (HDFS-14504) Rename with Snapshots does not honor quota limit

Shashikant Banerjee created HDFS-14504:
------------------------------------------

             Summary: Rename with Snapshots does not honor quota limit
                 Key: HDFS-14504
                 URL: https://issues.apache.org/jira/browse/HDFS-14504
             Project: Hadoop HDFS
          Issue Type: Bug
            Reporter: Shashikant Banerjee


Steps to Reproduce:

----------------------------
{code:java}
HW15685:bin sbanerjee$ ./hdfs dfs -mkdir /dir2

2019-05-21 15:08:41,615 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

HW15685:bin sbanerjee$ ./hdfs dfsadmin -setQuota 3 /dir2
2019-05-21 15:08:57,326 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

HW15685:bin sbanerjee$ ./hdfs dfsadmin -allowSnapshot /dir2
2019-05-21 15:09:47,239 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

Allowing snapshot on /dir2 succeeded

HW15685:bin sbanerjee$ ./hdfs dfs -touchz /dir2/file1
2019-05-21 15:10:01,573 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

HW15685:bin sbanerjee$ ./hdfs dfs -createSnapshot /dir2 snap1

2019-05-21 15:10:16,332 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

Created snapshot /dir2/.snapshot/snap1
HW15685:bin sbanerjee$ ./hdfs dfs -mv /dir2/file1 /dir2/file2

2019-05-21 15:10:49,292 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

HW15685:bin sbanerjee$ ./hdfs dfs -ls /dir2

2019-05-21 15:11:05,207 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

Found 1 items

-rw-r--r--   1 sbanerjee hadoop          0 2019-05-21 15:10 /dir2/file2

HW15685:bin sbanerjee$ ./hdfs dfs -touchz /dir2/filex

2019-05-21 15:11:43,765 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

touchz: The NameSpace quota (directories and files) of directory /dir2 is exceeded: quota=3 file count=4

HW15685:bin sbanerjee$ ./hdfs dfs -createSnapshot /dir2 snap2

2019-05-21 15:12:05,464 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

Created snapshot /dir2/.snapshot/snap2


HW15685:bin sbanerjee$ ./hdfs dfs -ls /dir2

2019-05-21 15:12:25,072 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

Found 1 items

-rw-r--r--   1 sbanerjee hadoop          0 2019-05-21 15:10 /dir2/file2

HW15685:bin sbanerjee$ ./hdfs dfs -mv /dir2/file2 /dir2/file3

2019-05-21 15:12:35,908 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

HW15685:bin sbanerjee$ ./hdfs dfs -touchz /dir2/filey

2019-05-21 15:12:49,998 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

touchz: The NameSpace quota (directories and files) of directory /dir2 is exceeded: quota=3 file count=5

// create operation fails here as it has already exceeded the quota limit

HW15685:bin sbanerjee$ ./hdfs dfs -createSnapshot /dir2 snap3

2019-05-21 15:13:07,656 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

Created snapshot /dir2/.snapshot/snap3

HW15685:bin sbanerjee$ ./hdfs dfs -mv /dir2/file3 /dir2/file4

2019-05-21 15:13:20,715 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
// Rename operation succeeds here adding on to the namespace quota

HW15685:bin sbanerjee$ ./hdfs dfs -touchz /dir2/filez

2019-05-21 15:13:30,486 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

touchz: The NameSpace quota (directories and files) of directory /dir2 is exceeded: quota=3 file count=6

// Fie creation fails here but file count has been increased to 6, bcoz of the previous rename operation{code}
The quota being set here is 3. Each successive rename adds an entry to the deleted list of the snapshot diff which gets accounted in the namespace quota, but the rename operation is allowed even when it exceeds the quota limit with snapshots. Once, an attempt is made to create a file, it fails.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org