|
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)
|