Bug 764475 (GLUSTER-2743) - Quota:moving file of sizes more than 250KB to quota limit dir. is unsuccessful
Summary: Quota:moving file of sizes more than 250KB to quota limit dir. is unsuccessful
Keywords:
Status: CLOSED NOTABUG
Alias: GLUSTER-2743
Product: GlusterFS
Classification: Community
Component: quota
Version: mainline
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Junaid
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-04-13 10:27 UTC by Saurabh
Modified: 2013-08-06 22:37 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed:
Regression: RTNR
Mount Type: All
Documentation: DP
CRM:
Verified Versions:


Attachments (Terms of Use)

Description Raghavendra G 2011-04-13 09:29:38 UTC
This is a known issue, which needs to be documented. Rename operation (which can be viewed as removing oldpath and creating newpath) actually requires an additional disk space equal to file size. This is because, during rename, we subtract size on oldpath after rename operation is performed, but we check whether quota limit is exceeded on parents of newfile before rename operation. In this case that additional disk space (250KB) is not available as /d1 is almost full and hence quota is complaining about Disk quota being exceeded.

regards,
Raghavendra.

Comment 1 Saurabh 2011-04-13 10:27:34 UTC
Found this issue on a dist-strip volume mounted over fuse,


1. create a dir(d1) with a quota limit
2. create another dir(dd1) inside the above mentioned dir(d1) , set quota limit     on it also.
3. create some file inside d1.
4. mv file to dd1

Expected result:- if the file size is less then space limit set the file should be allowed to move.

Actual result:- file more having size more than 250KB are not allowed to move.

Logs,

 from client side,


  [root@centos-qa-client-1 d1]# ls
f.1
[root@centos-qa-client-1 d1]# dd if=/dev/zero of=f.n bs=1KB count=490
490+0 records in
490+0 records out
490000 bytes (490 kB) copied, 0.212802 seconds, 2.3 MB/s
[root@centos-qa-client-1 d1]# mkdir dd1
[root@centos-qa-client-1 d1]# ls -li
total 1012
9240762 drwxr-xr-x 2 root root   8192 Apr 13 03:03 dd1
9240706 -rw-r--r-- 1 root root 512000 Apr 13 00:03 f.1
9240727 -rw-r--r-- 1 root root 490000 Apr 13 03:03 f.n
[root@centos-qa-client-1 d1]# mv f.n dd1/
mv: cannot move `f.n' to `dd1/f.n': Disk quota exceeded
[root@centos-qa-client-1 d1]# #dd if=/dev/zero of=f.n1 bs=1 count=1
[root@centos-qa-client-1 d1]# ls -R
.:
dd1  f.1  f.n

./dd1:
[root@centos-qa-client-1 d1]# dd if=/dev/zero of=f.n1 bs=1 count=1
1+0 records in
1+0 records out
1 byte (1 B) copied, 0.000921 seconds, 1.1 kB/s
[root@centos-qa-client-1 d1]# mv f.n1 dd1/
[root@centos-qa-client-1 d1]# mv dd1/f.n1 .
[root@centos-qa-client-1 d1]# ls -R
.:
dd1  f.1  f.n  f.n1

./dd1:
[root@centos-qa-client-1 d1]# ls -li
total 1020
9240762 drwxr-xr-x 2 root root   8192 Apr 13 03:06 dd1
9240706 -rw-r--r-- 1 root root 512000 Apr 13 00:03 f.1
9240727 -rw-r--r-- 1 root root 490000 Apr 13 03:03 f.n
9240764 -rw-r--r-- 1 root root      1 Apr 13 03:05 f.n1
[root@centos-qa-client-1 d1]# rm f.n
rm: remove regular file `f.n'? y
[root@centos-qa-client-1 d1]# dd if=/dev/zero of=f.n bs=1KB count=300
300+0 records in
300+0 records out
300000 bytes (300 kB) copied, 0.132111 seconds, 2.3 MB/s
[root@centos-qa-client-1 d1]# mv f.n dd1/
mv: cannot move `f.n' to `dd1/f.n': Disk quota exceeded
[root@centos-qa-client-1 d1]# ls dd1
[root@centos-qa-client-1 d1]# pwd
/mnt/g-diststrip/d1
[root@centos-qa-client-1 d1]# rm f.n
rm: remove regular file `f.n'? y
[root@centos-qa-client-1 d1]# dd if=/dev/zero of=f.n bs=1KB count=100
100+0 records in
100+0 records out
100000 bytes (100 kB) copied, 0.08415 seconds, 1.2 MB/s
[root@centos-qa-client-1 d1]# mv f.n dd1/
[root@centos-qa-client-1 d1]# mv dd1/f.n .
[root@centos-qa-client-1 d1]# rm f.n
rm: remove regular file `f.n'? y
[root@centos-qa-client-1 d1]# dd if=/dev/zero of=f.n bs=1KB count=250
250+0 records in
250+0 records out
250000 bytes (250 kB) copied, 0.127463 seconds, 2.0 MB/s
[root@centos-qa-client-1 d1]# mv f.n dd1/
mv: cannot move `f.n' to `dd1/f.n': Disk quota exceeded
[root@centos-qa-client-1 d1]# ls -l
total 788
drwxr-xr-x 2 root root   8192 Apr 13 03:10 dd1
-rw-r--r-- 1 root root 512000 Apr 13 00:03 f.1
-rw-r--r-- 1 root root 250000 Apr 13 03:11 f.n
-rw-r--r-- 1 root root      1 Apr 13 03:05 f.n1
[root@centos-qa-client-1 d1]# ls -l dd1
total 0
[root@centos-qa-client-1 d1]# 


##########################################################3


from server side

[root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list
	path		  limit_set	     size
----------------------------------------------------------------------------------
/d1                     1048576              1002000
/d2                     1048576               980000
/d2/dd2                  512000               490000
[root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 limit-usage /d1/dd1 500KB
limit set on /d1/dd1
[root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list
	path		  limit_set	     size
----------------------------------------------------------------------------------
/d1                     1048576              1002000
/d2                     1048576               980000
/d2/dd2                  512000               490000
/d1/dd1                  512000                    0
[root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list
	path		  limit_set	     size
----------------------------------------------------------------------------------
/d1                     1048576              1002000
/d2                     1048576               980000
/d2/dd2                  512000               490000
/d1/dd1                  512000                    0
[root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list
	path		  limit_set	     size
----------------------------------------------------------------------------------
/d1                     1048576               812000
/d2                     1048576               980000
/d2/dd2                  512000               490000
/d1/dd1                  512000                    0
[root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list
	path		  limit_set	     size
----------------------------------------------------------------------------------
/d1                     1048576               812000
/d2                     1048576               980000
/d2/dd2                  512000               490000
/d1/dd1                  512000                    0
[root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list
	path		  limit_set	     size
----------------------------------------------------------------------------------
/d1                     1048576               612000
/d2                     1048576               980000
/d2/dd2                  512000               490000
/d1/dd1                  512000                    0
[root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list
	path		  limit_set	     size
----------------------------------------------------------------------------------
/d1                     1048576               612000
/d2                     1048576               980000
/d2/dd2                  512000               490000
/d1/dd1                  512000               100000
[root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list
	path		  limit_set	     size
----------------------------------------------------------------------------------
/d1                     1048576               412000
/d2                     1048576               980000
/d2/dd2                  512000               490000
/d1/dd1                  512000                    0
[root@centos-qa-client-2 sbin]# ./gluster volume quota dist-strip1 list
	path		  limit_set	     size
----------------------------------------------------------------------------------
/d1                     1048576               662000
/d2                     1048576               980000
/d2/dd2                  512000               490000
/d1/dd1                  512000                    0
[root@centos-qa-client-2 sbin]#


Note You need to log in before you can comment on or make changes to this bug.