Bug 1032409 - quota: IOError: [Errno 2] No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp', '/']
quota: IOError: [Errno 2] No usable temporary directory found in ['/tmp', '/v...
Status: CLOSED NOTABUG
Product: Red Hat Gluster Storage
Classification: Red Hat
Component: quota (Show other bugs)
2.1
x86_64 Linux
medium Severity high
: ---
: ---
Assigned To: Vijaikumar Mallikarjuna
storage-qa-internal@redhat.com
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-11-20 01:38 EST by Saurabh
Modified: 2016-09-17 08:39 EDT (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2015-07-30 06:57:20 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Saurabh 2013-11-20 01:38:01 EST
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:
Comment 1 Saurabh 2013-11-20 01:40:23 EST
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
Comment 4 Vijaikumar Mallikarjuna 2015-07-30 06:57:20 EDT
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

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