classification
Title: test_dbm_gnu
Type: crash Stage: resolved
Components: Tests Versions: Python 3.5
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: Nosy List: georg.brandl, ink, zach.ware
Priority: normal Keywords:

Created on 2016-03-23 16:58 by ink, last changed 2021-10-18 20:36 by zach.ware. This issue is now closed.

Messages (2)
msg262288 - (view) Author: (ink) Date: 2016-03-23 16:58
Hello, I was running post-build tests after building 3.5.1 when test_dbm_gnu hanged on an error. The same happens with 3.4.4 so it's not version relevant. Furthermore, this happens on an NFS mounted storage but not on our Lustre volume. Most of the time it just hangs on OSError. We probably don't need dbm but the issue seems to be directory related and directories cannot be handled properly there could be other implications.

The build process was usual
./configure --prefix=/apps/python/3.5.1 --enable-shared --with-threads
make
make test

Thank you for any advice


By the way, on its own, the test runs fine

LD_LIBRARY_PATH=/apps/python/src/Python-3.5.1 ./python  ./Lib/test/test_dbm_gnu.py
.....
----------------------------------------------------------------------
Ran 5 tests in 0.026s

OK

but not as part of the regression tests


[114/397/2] test_dbm_gnu
Warning -- files was modified by test_dbm_gnu
Traceback (most recent call last):
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/test/support/__init__.py", line 899, in temp_dir
    yield path
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/test/support/__init__.py", line 948, in temp_cwd
    yield cwd_dir
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/test/regrtest.py", line 1591, in main_in_temp_cwd
    main()
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/test/regrtest.py", line 554, in main
    sys.exit(0)
SystemExit: 0

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/test/regrtest.py", line 1616, in <module>
    main_in_temp_cwd()
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/test/regrtest.py", line 1591, in main_in_temp_cwd
    main()
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/test/support/__init__.py", line 948, in temp_cwd
    yield cwd_dir
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/contextlib.py", line 77, in __exit__
    self.gen.throw(type, value, traceback)
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/test/support/__init__.py", line 902, in temp_dir
    shutil.rmtree(path)
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/shutil.py", line 474, in rmtree
    _rmtree_safe_fd(fd, path, onerror)
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/shutil.py", line 432, in _rmtree_safe_fd
    onerror(os.unlink, fullname, sys.exc_info())
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/shutil.py", line 430, in _rmtree_safe_fd
    os.unlink(name, dir_fd=topfd)
OSError: [Errno 16] Device or resource busy: '.nfs00000000027813d70000000c'

Traceback (most recent call last):
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/test/__main__.py", line 3, in <module>
    regrtest.main_in_temp_cwd()
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/test/regrtest.py", line 1591, in main_in_temp_cwd
    main()
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/test/regrtest.py", line 756, in main
    raise Exception("Child error on {}: {}".format(test, result[1]))
Exception: Child error on test_dbm_gnu: Exit code 1

^CException ignored in: <module 'threading' from '/opt/gridware/apps/python/src/Python-3.5.1/Lib/threading.py'>
Traceback (most recent call last):
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/threading.py", line 1288, in _shutdown
    t.join()
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/threading.py", line 1054, in join
    self._wait_for_tstate_lock()
  File "/opt/gridware/apps/python/src/Python-3.5.1/Lib/threading.py", line 1070, in _wait_for_tstate_lock
    elif lock.acquire(block, timeout):
KeyboardInterrupt
msg404216 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2021-10-18 20:36
Judging by the error message ("Device or resource busy:"), it seems likely to me that NFS was the culprit here.  The fact that the tests passed when run alone may point to an issue with the way tests were run as a group, but this has changed significantly since 2016.

If this can still be reproduced with modern versions of everything involved, it may be worth opening a new issue.  In the meantime, I'm closing this as out of date.
History
Date User Action Args
2021-10-18 20:36:07zach.waresetstatus: open -> closed

nosy: + zach.ware
messages: + msg404216

resolution: out of date
stage: resolved
2016-03-23 20:49:34SilentGhostsetnosy: + georg.brandl

versions: - Python 3.4
2016-03-23 16:58:02inkcreate