Project

General

Profile

Idea #21207 » 21207-killed-retrying.txt

Tom Clegg, 05/06/2024 08:43 PM

 
What next? test services/fuse:py3
======= test services/fuse
Processing /home/tom/arvados/services/fuse
Preparing metadata (setup.py) ... done
Requirement already satisfied: arvados-python-client~=2.8.0.dev0 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from arvados_fuse==2.8.0.dev20240503205528) (2.8.0.dev20240503205528)
Requirement already satisfied: arvados-llfuse>=1.5.1 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from arvados_fuse==2.8.0.dev20240503205528) (1.5.2)
Requirement already satisfied: python-daemon in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from arvados_fuse==2.8.0.dev20240503205528) (3.0.1)
Requirement already satisfied: ciso8601>=2.0.0 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from arvados_fuse==2.8.0.dev20240503205528) (2.3.1)
Requirement already satisfied: setuptools in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from arvados_fuse==2.8.0.dev20240503205528) (69.2.0)
Requirement already satisfied: prometheus_client in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from arvados_fuse==2.8.0.dev20240503205528) (0.20.0)
Requirement already satisfied: google-api-python-client>=2.1.0 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (2.122.0)
Requirement already satisfied: google-auth in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (1.35.0)
Requirement already satisfied: httplib2>=0.9.2 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (0.20.1)
Requirement already satisfied: pycurl>=7.19.5.1 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (7.44.1)
Requirement already satisfied: websockets>=11.0 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (12.0)
Requirement already satisfied: docutils in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from python-daemon->arvados_fuse==2.8.0.dev20240503205528) (0.20.1)
Requirement already satisfied: lockfile>=0.10 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from python-daemon->arvados_fuse==2.8.0.dev20240503205528) (0.12.2)
Requirement already satisfied: google-auth-httplib2>=0.1.0 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from google-api-python-client>=2.1.0->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (0.2.0)
Requirement already satisfied: google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.5 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from google-api-python-client>=2.1.0->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (2.10.2)
Requirement already satisfied: uritemplate<5,>=3.0.1 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from google-api-python-client>=2.1.0->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (4.1.1)
Requirement already satisfied: cachetools<5.0,>=2.0.0 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from google-auth->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (4.2.4)
Requirement already satisfied: pyasn1-modules>=0.2.1 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from google-auth->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (0.3.0)
Requirement already satisfied: six>=1.9.0 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from google-auth->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (1.16.0)
Requirement already satisfied: rsa<5,>=3.1.4 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from google-auth->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (4.9)
Requirement already satisfied: pyparsing<3,>=2.4.2 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from httplib2>=0.9.2->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (2.4.7)
Requirement already satisfied: googleapis-common-protos<2.0dev,>=1.56.2 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.5->google-api-python-client>=2.1.0->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (1.63.0)
Requirement already satisfied: protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.19.5 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.5->google-api-python-client>=2.1.0->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (3.20.3)
Requirement already satisfied: requests<3.0.0dev,>=2.18.0 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.5->google-api-python-client>=2.1.0->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (2.31.0)
Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from pyasn1-modules>=0.2.1->google-auth->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (0.5.1)
Requirement already satisfied: charset-normalizer<4,>=2 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.5->google-api-python-client>=2.1.0->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.5->google-api-python-client>=2.1.0->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (3.6)
Requirement already satisfied: urllib3<3,>=1.21.1 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.5->google-api-python-client>=2.1.0->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (2.2.1)
Requirement already satisfied: certifi>=2017.4.17 in /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.5->google-api-python-client>=2.1.0->arvados-python-client~=2.8.0.dev0->arvados_fuse==2.8.0.dev20240503205528) (2024.2.2)
Building wheels for collected packages: arvados_fuse
Building wheel for arvados_fuse (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [15 lines of output]
Using /home/tom/arvados/services/fuse for version number calculation of /home/tom/arvados/services/fuse
running bdist_wheel
running build
running build_py
copying arvados_fuse/crunchstat.py -> build/lib/arvados_fuse
copying arvados_fuse/fusedir.py -> build/lib/arvados_fuse
copying arvados_fuse/_version.py -> build/lib/arvados_fuse
copying arvados_fuse/fresh.py -> build/lib/arvados_fuse
copying arvados_fuse/__init__.py -> build/lib/arvados_fuse
copying arvados_fuse/fusefile.py -> build/lib/arvados_fuse
copying arvados_fuse/unmount.py -> build/lib/arvados_fuse
copying arvados_fuse/command.py -> build/lib/arvados_fuse
running build_scripts
copying and adjusting bin/arv-mount -> build/scripts-3.11
error: [Errno 13] Permission denied: 'build/scripts-3.11/arv-mount'
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for arvados_fuse
Running setup.py clean for arvados_fuse
Failed to build arvados_fuse
Installing collected packages: arvados_fuse
Attempting uninstall: arvados_fuse
Found existing installation: arvados_fuse 2.8.0.dev20240503205528
Uninstalling arvados_fuse-2.8.0.dev20240503205528:
Successfully uninstalled arvados_fuse-2.8.0.dev20240503205528
Running setup.py install for arvados_fuse ... done
DEPRECATION: arvados_fuse was installed using the legacy 'setup.py install' method, because a wheel could not be built for it. pip 23.1 will enforce this behaviour change. A possible replacement is to fix the wheel build issue reported above. Discussion can be found at https://github.com/pypa/pip/issues/8368
Successfully installed arvados_fuse-2.8.0.dev20240503205528
================================================================= test session starts ==================================================================
platform linux -- Python 3.11.2, pytest-8.2.0, pluggy-1.5.0
rootdir: /home/tom/arvados/services/fuse
configfile: pytest.ini
testpaths: tests
collected 145 items

tests/test_cache.py ./build/run-tests.sh: line 660: 3412754 Killed python3 -m pytest ${testargs[$1]}

*****
services/fuse tests killed -- retrying
*****

================================================================= test session starts ==================================================================
platform linux -- Python 3.11.2, pytest-8.2.0, pluggy-1.5.0
rootdir: /home/tom/arvados/services/fuse
configfile: pytest.ini
testpaths: tests
collected 145 items

tests/test_cache.py ./build/run-tests.sh: line 660: 3412962 Killed python3 -m pytest ${testargs[$1]}

*****
services/fuse tests killed -- retrying
*****

================================================================= test session starts ==================================================================
platform linux -- Python 3.11.2, pytest-8.2.0, pluggy-1.5.0
rootdir: /home/tom/arvados/services/fuse
configfile: pytest.ini
testpaths: tests
collected 145 items

tests/test_cache.py . [ 0%]
tests/test_command_args.py .......................... [ 18%]
tests/test_crunchstat.py . [ 19%]
tests/test_exec.py . [ 20%]
tests/test_inodes.py F.F.. [ 23%]
tests/test_mount.py ............................................................................ [ 75%]
tests/test_mount_filters.py ................ [ 86%]
tests/test_mount_type.py . [ 87%]
tests/test_retry.py .... [ 90%]
tests/test_tmp_collection.py ......... [ 96%]
tests/test_token_expiry.py . [ 97%]
tests/test_unmount.py .... [100%]

======================================================================= FAILURES =======================================================================
_____________________________________________________________ InodeTests.test_clear_in_use _____________________________________________________________

self = <tests.test_inodes.InodeTests testMethod=test_clear_in_use>

def test_clear_in_use(self):
cache = arvados_fuse.InodeCache(1000, 4)
inodes = arvados_fuse.Inodes(cache)
next(inodes._counter)
ent1 = mock.MagicMock()
ent1.in_use.return_value = True
ent1.has_ref.return_value = False
ent1.persisted.return_value = True
ent1.objsize.return_value = 500
inodes.add_entry(ent1)
ent3 = mock.MagicMock()
ent3.in_use.return_value = False
ent3.has_ref.return_value = True
ent3.persisted.return_value = True
ent3.objsize.return_value = 600
inodes.add_entry(ent3)
cache.min_entries = 1
# ent1, ent3 in use, has ref, can't be cleared
ent1.clear.called = False
ent3.clear.called = False
self.assertFalse(ent1.clear.called)
self.assertFalse(ent3.clear.called)
inodes.touch(ent3)
inodes.wait_remove_queue_empty()
self.assertFalse(ent1.clear.called)
self.assertFalse(ent3.clear.called)
# kernel invalidate gets called anyway
self.assertTrue(ent3.kernel_invalidate.called)
self.assertEqual(1100, cache.total())
# ent1 still in use, ent3 doesn't have ref,
# so ent3 gets cleared
ent3.has_ref.return_value = False
ent1.clear.called = False
ent3.clear.called = False
ent3.parent_inode = None
inodes.touch(ent3)
inodes.wait_remove_queue_empty()
self.assertFalse(ent1.clear.called)
> self.assertTrue(ent3.clear.called)
E AssertionError: False is not true

tests/test_inodes.py:143: AssertionError
____________________________________________________________ InodeTests.test_inode_cleared _____________________________________________________________

self = <tests.test_inodes.InodeTests testMethod=test_inode_cleared>

def test_inode_cleared(self):
cache = arvados_fuse.InodeCache(1000, 4)
inodes = arvados_fuse.Inodes(cache)
next(inodes._counter)
# Check that ent1 gets added to inodes
ent1 = mock.MagicMock()
ent1.in_use.return_value = False
ent1.has_ref.return_value = False
ent1.persisted.return_value = True
ent1.objsize.return_value = 500
inodes.add_entry(ent1)
# ent3 is persisted, adding it should cause ent1 to get cleared
ent3 = mock.MagicMock()
ent3.in_use.return_value = False
ent3.has_ref.return_value = False
ent3.persisted.return_value = True
ent3.objsize.return_value = 600
self.assertFalse(ent1.clear.called)
inodes.add_entry(ent3)
# Won't clear anything because min_entries = 4
self.assertEqual(2, len(cache._cache_entries))
self.assertFalse(ent1.clear.called)
self.assertEqual(1100, cache.total())
# Change min_entries
cache.min_entries = 1
ent1.parent_inode = None
inodes.cap_cache()
inodes.wait_remove_queue_empty()
> self.assertEqual(600, cache.total())
E AssertionError: 600 != 1100

tests/test_inodes.py:88: AssertionError
=================================================================== warnings summary ===================================================================
../../tmp/VENV3DIR/lib/python3.11/site-packages/pyparsing.py:108
/home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages/pyparsing.py:108: DeprecationWarning: module 'sre_constants' is deprecated
import sre_constants

tests/test_cache.py: 40 warnings
tests/test_command_args.py: 71 warnings
tests/test_crunchstat.py: 4 warnings
tests/test_exec.py: 3 warnings
tests/test_mount.py: 834 warnings
tests/test_mount_filters.py: 131 warnings
tests/test_mount_type.py: 6 warnings
tests/test_retry.py: 15 warnings
tests/test_tmp_collection.py: 36 warnings
tests/test_token_expiry.py: 49 warnings
tests/test_unmount.py: 6 warnings
/home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages/httplib2/__init__.py:147: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated
context = ssl.SSLContext(DEFAULT_TLS_VERSION)

tests/test_cache.py: 1 warning
tests/test_mount.py: 7 warnings
tests/test_mount_filters.py: 4 warnings
tests/test_mount_type.py: 1 warning
tests/test_retry.py: 3 warnings
tests/test_token_expiry.py: 1 warning
/home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages/arvados/events.py:267: DeprecationWarning: setName() is deprecated, set the name attribute instead
self.setName(f'ArvadosWebsockets-{self.ident}')

tests/test_mount.py::FuseMountTest_0::runTest
tests/test_mount.py::FuseMountTest_1::runTest
tests/test_mount.py::FuseMountTest::runTest
/home/tom/arvados/services/fuse/tests/test_mount.py:62: DeprecationWarning: arvados.collection.CollectionWriter is deprecated and scheduled to be removed in Arvados 3.0. Prefer arvados.collection.Collection instead.
cw = arvados.CollectionWriter()

tests/test_mount.py::FuseMagicTest_0::runTest
tests/test_mount.py::FuseMagicTest_1::runTest
tests/test_mount.py::FuseMagicTest::runTest
tests/test_mount.py::FuseFsyncTest::runTest
tests/test_mount.py::MagicDirApiError::runTest
/home/tom/arvados/services/fuse/tests/test_mount.py:139: DeprecationWarning: arvados.collection.CollectionWriter is deprecated and scheduled to be removed in Arvados 3.0. Prefer arvados.collection.Collection instead.
cw = arvados.CollectionWriter()

tests/test_mount.py::FuseMagicTestPDHOnly::test_with_default_by_id
tests/test_mount.py::FuseMagicTestPDHOnly::test_with_pdh_only_false
tests/test_mount.py::FuseMagicTestPDHOnly::test_with_pdh_only_true
/home/tom/arvados/services/fuse/tests/test_mount.py:1163: DeprecationWarning: arvados.collection.CollectionWriter is deprecated and scheduled to be removed in Arvados 3.0. Prefer arvados.collection.Collection instead.
cw = arvados.CollectionWriter()

tests/test_mount.py::SlashSubstitutionTest::test_slash_substitution_after_listing
tests/test_mount.py::SlashSubstitutionTest::test_slash_substitution_before_listing
/home/tom/arvados/services/fuse/tests/test_mount.py:1266: DeprecationWarning: Please use assertRegex instead.
self.assertRegexpMatches(self.api.collections().get(uuid=self.testcoll['uuid']).execute()['manifest_text'], ' acbd18db') # md5(foo)

tests/test_mount.py::SlashSubstitutionTest::test_slash_substitution_after_listing
tests/test_mount.py::SlashSubstitutionTest::test_slash_substitution_before_listing
/home/tom/arvados/services/fuse/tests/test_mount.py:1267: DeprecationWarning: Please use assertRegex instead.
self.assertRegexpMatches(self.api.collections().get(uuid=self.testcolleasy['uuid']).execute()['manifest_text'], ' f561aaf6') # md5(xxx)

tests/test_mount.py::SlashSubstitutionTest::test_slash_substitution_conflict
/home/tom/arvados/services/fuse/tests/test_mount.py:1275: DeprecationWarning: Please use assertRegex instead.
self.assertRegexpMatches(self.api.collections().get(uuid=self.testcollconflict['uuid']).execute()['manifest_text'], ' acbd18db') # md5(foo)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=============================================================== short test summary info ================================================================
FAILED tests/test_inodes.py::InodeTests::test_clear_in_use - AssertionError: False is not true
FAILED tests/test_inodes.py::InodeTests::test_inode_cleared - AssertionError: 600 != 1100
=============================================== 2 failed, 143 passed, 1229 warnings in 212.67s (0:03:32) ===============================================
======= services/fuse tests -- FAILED
======= test services/fuse -- 346s
Failures (1):
Fail: services/fuse tests (346s)
    (1-1/1)