[issue22011] test_os extended attribute setxattr tests can fail with ENOSPC (Errno 28)

Ned Deily report at bugs.python.org
Sun Jul 20 05:16:03 CEST 2014


Ned Deily added the comment:

(In the future, please just show the test failures and their tracebacks rather than uploading a tar file.) 

The logs show three test failures in test_os:
======================================================================
ERROR: test_fds (test.test_os.ExtendedAttributeTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/yannick/c/src/Python-3.4.1/Lib/test/test_os.py", line 2238, in test_fds
    self._check_xattrs(getxattr, setxattr, removexattr, listxattr)
  File "/home/yannick/c/src/Python-3.4.1/Lib/test/test_os.py", line 2213, in _check_xattrs
    self._check_xattrs_str(str, *args, **kwargs)
  File "/home/yannick/c/src/Python-3.4.1/Lib/test/test_os.py", line 2202, in _check_xattrs_str
    setxattr(fn, s("user.test"), b"a"*1024, **kwargs)
  File "/home/yannick/c/src/Python-3.4.1/Lib/test/test_os.py", line 2231, in setxattr
    os.setxattr(fp.fileno(), *args)
OSError: [Errno 28] No space left on device: 4

======================================================================
ERROR: test_lpath (test.test_os.ExtendedAttributeTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/yannick/c/src/Python-3.4.1/Lib/test/test_os.py", line 2223, in test_lpath
    os.listxattr, follow_symlinks=False)
  File "/home/yannick/c/src/Python-3.4.1/Lib/test/test_os.py", line 2213, in _check_xattrs
    self._check_xattrs_str(str, *args, **kwargs)
  File "/home/yannick/c/src/Python-3.4.1/Lib/test/test_os.py", line 2202, in _check_xattrs_str
    setxattr(fn, s("user.test"), b"a"*1024, **kwargs)
OSError: [Errno 28] No space left on device: '@test_16527_tmp'

======================================================================
ERROR: test_simple (test.test_os.ExtendedAttributeTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/yannick/c/src/Python-3.4.1/Lib/test/test_os.py", line 2219, in test_simple
    os.listxattr)
  File "/home/yannick/c/src/Python-3.4.1/Lib/test/test_os.py", line 2213, in _check_xattrs
    self._check_xattrs_str(str, *args, **kwargs)
  File "/home/yannick/c/src/Python-3.4.1/Lib/test/test_os.py", line 2202, in _check_xattrs_str
    setxattr(fn, s("user.test"), b"a"*1024, **kwargs)
OSError: [Errno 28] No space left on device: '@test_16527_tmp'

----------------------------------------------------------------------

Note that all three failures are on attempts to set a 1024-byte extended attributes on a /tmp file with os.setxattr(), a function which is just a wrapper around the Linux setxattr system call.  "man 2 setxattr" documents that the call can fail with ENOSPC (Errno 28) if "there is insufficient space remaining to store the extended attribute".  "man 5 attr", the overview of extended attribute support, notes that there are various kernel and file system specific limits on extended attributes, including length restrictions.  So presumably there may be legitimate reasons why these tests could get ENOSPC on particular system configurations.  It would be better if test_os anticipated such problems and passed those tests with a warning if ENOSPC is returned.

http://man7.org/linux/man-pages/man2/setxattr.2.html
http://man7.org/linux/man-pages/man5/attr.5.html

----------
components: +Tests -Build
keywords: +easy
nosy: +ned.deily
stage:  -> needs patch
title: “make test” fails with 3.4.1 on Ubuntu 12.04 -> test_os extended attribute setxattr tests can fail with ENOSPC (Errno 28)
versions: +Python 3.5

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue22011>
_______________________________________


More information about the Python-bugs-list mailing list