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