Project

General

Profile

Idea #21207 » 21207-killed-retrying.txt

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

 
1
What next? test services/fuse:py3
2
======= test services/fuse
3
Processing /home/tom/arvados/services/fuse
4
  Preparing metadata (setup.py) ... done
5
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)
6
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)
7
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)
8
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)
9
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)
10
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)
11
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)
12
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)
13
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)
14
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)
15
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)
16
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)
17
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)
18
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)
19
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)
20
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)
21
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)
22
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)
23
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)
24
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)
25
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)
26
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)
27
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)
28
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)
29
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)
30
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)
31
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)
32
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)
33
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)
34
Building wheels for collected packages: arvados_fuse
35
  Building wheel for arvados_fuse (setup.py) ... error
36
  error: subprocess-exited-with-error
37
  
38
  × python setup.py bdist_wheel did not run successfully.
39
  │ exit code: 1
40
  ╰─> [15 lines of output]
41
      Using /home/tom/arvados/services/fuse for version number calculation of /home/tom/arvados/services/fuse
42
      running bdist_wheel
43
      running build
44
      running build_py
45
      copying arvados_fuse/crunchstat.py -> build/lib/arvados_fuse
46
      copying arvados_fuse/fusedir.py -> build/lib/arvados_fuse
47
      copying arvados_fuse/_version.py -> build/lib/arvados_fuse
48
      copying arvados_fuse/fresh.py -> build/lib/arvados_fuse
49
      copying arvados_fuse/__init__.py -> build/lib/arvados_fuse
50
      copying arvados_fuse/fusefile.py -> build/lib/arvados_fuse
51
      copying arvados_fuse/unmount.py -> build/lib/arvados_fuse
52
      copying arvados_fuse/command.py -> build/lib/arvados_fuse
53
      running build_scripts
54
      copying and adjusting bin/arv-mount -> build/scripts-3.11
55
      error: [Errno 13] Permission denied: 'build/scripts-3.11/arv-mount'
56
      [end of output]
57
  
58
  note: This error originates from a subprocess, and is likely not a problem with pip.
59
  ERROR: Failed building wheel for arvados_fuse
60
  Running setup.py clean for arvados_fuse
61
Failed to build arvados_fuse
62
Installing collected packages: arvados_fuse
63
  Attempting uninstall: arvados_fuse
64
    Found existing installation: arvados_fuse 2.8.0.dev20240503205528
65
    Uninstalling arvados_fuse-2.8.0.dev20240503205528:
66
      Successfully uninstalled arvados_fuse-2.8.0.dev20240503205528
67
  Running setup.py install for arvados_fuse ... done
68
  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
69
Successfully installed arvados_fuse-2.8.0.dev20240503205528
70
================================================================= test session starts ==================================================================
71
platform linux -- Python 3.11.2, pytest-8.2.0, pluggy-1.5.0
72
rootdir: /home/tom/arvados/services/fuse
73
configfile: pytest.ini
74
testpaths: tests
75
collected 145 items                                                                                                                                    
76

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

    
79
*****
80
services/fuse tests killed -- retrying
81
*****
82

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

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

    
92
*****
93
services/fuse tests killed -- retrying
94
*****
95

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

    
103
tests/test_cache.py .                                                                                                                            [  0%]
104
tests/test_command_args.py ..........................                                                                                            [ 18%]
105
tests/test_crunchstat.py .                                                                                                                       [ 19%]
106
tests/test_exec.py .                                                                                                                             [ 20%]
107
tests/test_inodes.py F.F..                                                                                                                       [ 23%]
108
tests/test_mount.py ............................................................................                                                 [ 75%]
109
tests/test_mount_filters.py ................                                                                                                     [ 86%]
110
tests/test_mount_type.py .                                                                                                                       [ 87%]
111
tests/test_retry.py ....                                                                                                                         [ 90%]
112
tests/test_tmp_collection.py .........                                                                                                           [ 96%]
113
tests/test_token_expiry.py .                                                                                                                     [ 97%]
114
tests/test_unmount.py ....                                                                                                                       [100%]
115

    
116
======================================================================= FAILURES =======================================================================
117
_____________________________________________________________ InodeTests.test_clear_in_use _____________________________________________________________
118

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

    
121
    def test_clear_in_use(self):
122
        cache = arvados_fuse.InodeCache(1000, 4)
123
        inodes = arvados_fuse.Inodes(cache)
124
        next(inodes._counter)
125
    
126
        ent1 = mock.MagicMock()
127
        ent1.in_use.return_value = True
128
        ent1.has_ref.return_value = False
129
        ent1.persisted.return_value = True
130
        ent1.objsize.return_value = 500
131
        inodes.add_entry(ent1)
132
    
133
        ent3 = mock.MagicMock()
134
        ent3.in_use.return_value = False
135
        ent3.has_ref.return_value = True
136
        ent3.persisted.return_value = True
137
        ent3.objsize.return_value = 600
138
        inodes.add_entry(ent3)
139
    
140
        cache.min_entries = 1
141
    
142
        # ent1, ent3 in use, has ref, can't be cleared
143
        ent1.clear.called = False
144
        ent3.clear.called = False
145
        self.assertFalse(ent1.clear.called)
146
        self.assertFalse(ent3.clear.called)
147
        inodes.touch(ent3)
148
        inodes.wait_remove_queue_empty()
149
        self.assertFalse(ent1.clear.called)
150
        self.assertFalse(ent3.clear.called)
151
        # kernel invalidate gets called anyway
152
        self.assertTrue(ent3.kernel_invalidate.called)
153
        self.assertEqual(1100, cache.total())
154
    
155
        # ent1 still in use, ent3 doesn't have ref,
156
        # so ent3 gets cleared
157
        ent3.has_ref.return_value = False
158
        ent1.clear.called = False
159
        ent3.clear.called = False
160
        ent3.parent_inode = None
161
        inodes.touch(ent3)
162
        inodes.wait_remove_queue_empty()
163
        self.assertFalse(ent1.clear.called)
164
>       self.assertTrue(ent3.clear.called)
165
E       AssertionError: False is not true
166

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

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

    
172
    def test_inode_cleared(self):
173
        cache = arvados_fuse.InodeCache(1000, 4)
174
        inodes = arvados_fuse.Inodes(cache)
175
        next(inodes._counter)
176
    
177
        # Check that ent1 gets added to inodes
178
        ent1 = mock.MagicMock()
179
        ent1.in_use.return_value = False
180
        ent1.has_ref.return_value = False
181
        ent1.persisted.return_value = True
182
        ent1.objsize.return_value = 500
183
        inodes.add_entry(ent1)
184
    
185
        # ent3 is persisted, adding it should cause ent1 to get cleared
186
        ent3 = mock.MagicMock()
187
        ent3.in_use.return_value = False
188
        ent3.has_ref.return_value = False
189
        ent3.persisted.return_value = True
190
        ent3.objsize.return_value = 600
191
    
192
        self.assertFalse(ent1.clear.called)
193
        inodes.add_entry(ent3)
194
    
195
        # Won't clear anything because min_entries = 4
196
        self.assertEqual(2, len(cache._cache_entries))
197
        self.assertFalse(ent1.clear.called)
198
        self.assertEqual(1100, cache.total())
199
    
200
        # Change min_entries
201
        cache.min_entries = 1
202
        ent1.parent_inode = None
203
        inodes.cap_cache()
204
        inodes.wait_remove_queue_empty()
205
>       self.assertEqual(600, cache.total())
206
E       AssertionError: 600 != 1100
207

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

    
214
tests/test_cache.py: 40 warnings
215
tests/test_command_args.py: 71 warnings
216
tests/test_crunchstat.py: 4 warnings
217
tests/test_exec.py: 3 warnings
218
tests/test_mount.py: 834 warnings
219
tests/test_mount_filters.py: 131 warnings
220
tests/test_mount_type.py: 6 warnings
221
tests/test_retry.py: 15 warnings
222
tests/test_tmp_collection.py: 36 warnings
223
tests/test_token_expiry.py: 49 warnings
224
tests/test_unmount.py: 6 warnings
225
  /home/tom/arvados/tmp/VENV3DIR/lib/python3.11/site-packages/httplib2/__init__.py:147: DeprecationWarning: ssl.PROTOCOL_TLS is deprecated
226
    context = ssl.SSLContext(DEFAULT_TLS_VERSION)
227

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

    
237
tests/test_mount.py::FuseMountTest_0::runTest
238
tests/test_mount.py::FuseMountTest_1::runTest
239
tests/test_mount.py::FuseMountTest::runTest
240
  /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.
241
    cw = arvados.CollectionWriter()
242

    
243
tests/test_mount.py::FuseMagicTest_0::runTest
244
tests/test_mount.py::FuseMagicTest_1::runTest
245
tests/test_mount.py::FuseMagicTest::runTest
246
tests/test_mount.py::FuseFsyncTest::runTest
247
tests/test_mount.py::MagicDirApiError::runTest
248
  /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.
249
    cw = arvados.CollectionWriter()
250

    
251
tests/test_mount.py::FuseMagicTestPDHOnly::test_with_default_by_id
252
tests/test_mount.py::FuseMagicTestPDHOnly::test_with_pdh_only_false
253
tests/test_mount.py::FuseMagicTestPDHOnly::test_with_pdh_only_true
254
  /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.
255
    cw = arvados.CollectionWriter()
256

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

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

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

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