Bug 1064121

Summary: quota: quotad down and difference in the manner quota stats are listed while providing path and without path in the command line
Product: [Red Hat Storage] Red Hat Gluster Storage Reporter: Saurabh <saujain>
Component: quotaAssignee: Vijaikumar Mallikarjuna <vmallika>
Status: CLOSED NOTABUG QA Contact: storage-qa-internal <storage-qa-internal>
Severity: medium Docs Contact:
Priority: medium    
Version: 2.1CC: mzywusko, nlevinki, rhs-bugs, smohan, storage-qa-internal, vbellur, vmallika
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-27 12:03:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Saurabh 2014-02-12 04:54:56 UTC
Description of problem:
Afer killing the quotad command. I tried to collect the quota related stats using the quota list command. This list command can be used with path or without path. 
Problem is that the list without path just hangs and with path it displays the information 

Version-Release number of selected component (if applicable):
glusterfs-3.4.0.59rhs-1.el6rhs.x86_64

How reproducible:
always

Steps to Reproduce:
1. create a volume, start it
2. enable quota
3. set some limit on the volume.
4. kill quotad on the node.
5. gluster volume quota <volume-name> list
6. gluster volume quota <volume-name> list /

Actual results:
step 4 result,
[root@quota6 ~]# gluster volume status dist-rep
Status of volume: dist-rep
Gluster process						Port	Online	Pid
------------------------------------------------------------------------------
Brick quota5:/rhs/brick1/d1r1				49162	Y	1848
Brick quota6:/rhs/brick1/d1r2				49163	Y	1835
Brick quota7:/rhs/brick1/d2r1				49158	Y	12385
Brick quota8:/rhs/brick1/d2r2				49158	Y	11779
Brick quota5:/rhs/brick1/d3r1				49163	Y	1847
Brick quota6:/rhs/brick1/d3r2				49164	Y	1875
Brick quota7:/rhs/brick1/d4r1				49159	Y	12396
Brick quota8:/rhs/brick1/d4r2				49159	Y	11790
Brick quota5:/rhs/brick1/d5r1				49164	Y	1859
Brick quota6:/rhs/brick1/d5r2				49165	Y	1874
Brick quota7:/rhs/brick1/d6r1				49160	Y	12407
Brick quota8:/rhs/brick1/d6r2				49160	Y	11801
NFS Server on localhost					2049	Y	28279
Self-heal Daemon on localhost				N/A	Y	28287
Quota Daemon on localhost				N/A	N	N/A
NFS Server on 10.70.35.219				2049	Y	18680
Self-heal Daemon on 10.70.35.219			N/A	Y	18688
Quota Daemon on 10.70.35.219				N/A	Y	18894
NFS Server on quota7					2049	Y	5223
Self-heal Daemon on quota7				N/A	Y	5231
Quota Daemon on quota7					N/A	Y	5325
NFS Server on quota8					2049	Y	4618
Self-heal Daemon on quota8				N/A	Y	4626
Quota Daemon on quota8					N/A	Y	4716
 
Task Status of Volume dist-rep
------------------------------------------------------------------------------
There are no active volume tasks
 
[root@quota6 ~]# 

result of step 5,
[root@quota6 ~]# gluster vol quota dist-rep2 list 
                  Path                   Hard-limit Soft-limit   Used  Available  Soft-limit exceeded? Hard-limit exceeded?
---------------------------------------------------------------------------------------------------------------------------
^C

result of step6,
[root@quota6 ~]# gluster vol quota dist-rep2 list /
                  Path                   Hard-limit Soft-limit   Used  Available  Soft-limit exceeded?  Hard-limit exceeded?
---------------------------------------------------------------------------------------------------------------------------
/                                         20.0GB       80%      0Bytes  20.0GB              No                   No


Expected results:
both should remain same.

Additional info:

Comment 2 Vijaikumar Mallikarjuna 2015-03-27 12:03:28 UTC
This is an expected behavior.

When quota list command is executed with the 'path'. cli creates a auxiliary mount-point for the volume, from here it fetches the details of the specified path.


When quota list command is executed without 'path', cli communicates to quotad and fetches details of all paths where the limit is set.
When quotad is killed, CLI continuously tries to re-connect to the quotad.
As CLI uses unix domain socket to connect to quotad, it may not be timing-out and hanging forever.