Description of problem: While executing "gluster volume quota $volname list <path>" on one of the nodes throws error, IOError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/'] Version-Release number of selected component (if applicable): glusterfs-3.4.0.44rhs-1 How reproducible: happen to be seen only on one node of the cluster Steps to Reproduce: 1. execute the gluster volume quota $volname list <path> 2. 3. Actual results: [root@quota5 ~]# gluster volume quota dist-rep list /1 Traceback (most recent call last): File "/usr/libexec/glusterfs/python/syncdaemon/gsyncd.py", line 24, in <module> import resource File "/usr/libexec/glusterfs/python/syncdaemon/resource.py", line 21, in <module> from master import gmaster_builder File "/usr/libexec/glusterfs/python/syncdaemon/master.py", line 16, in <module> from libcxattr import Xattr File "/usr/libexec/glusterfs/python/syncdaemon/libcxattr.py", line 5, in <module> class Xattr(object): File "/usr/libexec/glusterfs/python/syncdaemon/libcxattr.py", line 16, in Xattr libc = CDLL(find_library("libc")) File "/usr/lib64/python2.6/ctypes/util.py", line 209, in find_library return _findSoname_ldconfig(name) or _get_soname(_findLib_gcc(name)) File "/usr/lib64/python2.6/ctypes/util.py", line 93, in _findLib_gcc fdout, ccout = tempfile.mkstemp() File "/usr/lib64/python2.6/tempfile.py", line 286, in mkstemp dir = gettempdir() File "/usr/lib64/python2.6/tempfile.py", line 254, in gettempdir tempdir = _get_default_tempdir() File "/usr/lib64/python2.6/tempfile.py", line 201, in _get_default_tempdir ("No usable temporary directory found in %s" % dirlist)) IOError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/'] Path Hard-limit Soft-limit Used Available -------------------------------------------------------------------------------- /1 10.0GB 80% 10.0GB 0Bytes Expected results: quota list command shouls provide stats related to it, without throwing any error. Additional info:
Presently it is been seen with some other commands as well, [root@quota5 ~]# gluster volume info Traceback (most recent call last): File "/usr/libexec/glusterfs/python/syncdaemon/gsyncd.py", line 24, in <module> import resource File "/usr/libexec/glusterfs/python/syncdaemon/resource.py", line 21, in <module> from master import gmaster_builder File "/usr/libexec/glusterfs/python/syncdaemon/master.py", line 16, in <module> from libcxattr import Xattr File "/usr/libexec/glusterfs/python/syncdaemon/libcxattr.py", line 5, in <module> class Xattr(object): File "/usr/libexec/glusterfs/python/syncdaemon/libcxattr.py", line 16, in Xattr libc = CDLL(find_library("libc")) File "/usr/lib64/python2.6/ctypes/util.py", line 209, in find_library return _findSoname_ldconfig(name) or _get_soname(_findLib_gcc(name)) File "/usr/lib64/python2.6/ctypes/util.py", line 93, in _findLib_gcc fdout, ccout = tempfile.mkstemp() File "/usr/lib64/python2.6/tempfile.py", line 286, in mkstemp dir = gettempdir() File "/usr/lib64/python2.6/tempfile.py", line 254, in gettempdir tempdir = _get_default_tempdir() File "/usr/lib64/python2.6/tempfile.py", line 201, in _get_default_tempdir ("No usable temporary directory found in %s" % dirlist)) IOError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/'] Volume Name: dist-rep Type: Distributed-Replicate Volume ID: 8cbe17e6-70cb-487c-b2e3-5055b93c909c Status: Started Number of Bricks: 6 x 2 = 12 Transport-type: tcp Bricks: Brick1: 10.70.35.188:/rhs/brick1/d1r1 Brick2: 10.70.35.108:/rhs/brick1/d1r2 Brick3: 10.70.35.191:/rhs/brick1/d2r1 Brick4: 10.70.35.144:/rhs/brick1/d2r2 Brick5: 10.70.35.188:/rhs/brick1/d3r1 Brick6: 10.70.35.108:/rhs/brick1/d3r2 Brick7: 10.70.35.191:/rhs/brick1/d4r1 Brick8: 10.70.35.144:/rhs/brick1/d4r2 Brick9: 10.70.35.188:/rhs/brick1/d5r1 Brick10: 10.70.35.108:/rhs/brick1/d5r2 Brick11: 10.70.35.191:/rhs/brick1/d6r1 Brick12: 10.70.35.144:/rhs/brick1/d6r2 Options Reconfigured: features.quota-deem-statfs: on features.quota: on where as from other the gluster commands are working properly, as can be seen with the below mentioned command, [root@quota6 ~]# gluster volume status Status of volume: dist-rep Gluster process Port Online Pid ------------------------------------------------------------------------------ Brick 10.70.35.188:/rhs/brick1/d1r1 49157 Y 1757 Brick 10.70.35.108:/rhs/brick1/d1r2 N/A Y 16878 Brick 10.70.35.191:/rhs/brick1/d2r1 49155 Y 593 Brick 10.70.35.144:/rhs/brick1/d2r2 N/A Y 16634 Brick 10.70.35.188:/rhs/brick1/d3r1 49158 Y 1768 Brick 10.70.35.108:/rhs/brick1/d3r2 N/A Y 16885 Brick 10.70.35.191:/rhs/brick1/d4r1 49156 Y 604 Brick 10.70.35.144:/rhs/brick1/d4r2 N/A Y 16638 Brick 10.70.35.188:/rhs/brick1/d5r1 49159 Y 1779 Brick 10.70.35.108:/rhs/brick1/d5r2 N/A Y 16892 Brick 10.70.35.191:/rhs/brick1/d6r1 49157 Y 615 Brick 10.70.35.144:/rhs/brick1/d6r2 N/A Y 16646 NFS Server on localhost 2049 Y 16949 Self-heal Daemon on localhost N/A Y 16956 Quota Daemon on localhost N/A Y 16963 NFS Server on 10.70.35.144 2049 Y 16704 Self-heal Daemon on 10.70.35.144 N/A Y 16711 Quota Daemon on 10.70.35.144 N/A Y 16718 NFS Server on 10.70.35.188 2049 Y 1793 Self-heal Daemon on 10.70.35.188 N/A Y 1802 Quota Daemon on 10.70.35.188 N/A Y 1869 NFS Server on 10.70.35.191 2049 Y 631 Self-heal Daemon on 10.70.35.191 N/A Y 637 Quota Daemon on 10.70.35.191 N/A Y 688 There are no active volume tasks
From the stack-trace the error is from the python internal library where it failed to create temporary file and it failed. The issue is with python or with the setup, so closing as Not a Bug