Bug #7846

Updated by Peter Amstutz over 4 years ago

ERROR: runTest (tests.test_mount.MagicDirApiError)
Traceback (most recent call last):
File "/home/peter/work/arvados/services/fuse/tests/test_mount.py", line 1034, in runTest
llfuse.listdir(os.path.join(self.mounttmp, self.testcollection))
File "llfuse/fuse_api.pxi", line 43, in llfuse.capi.listdir (src/llfuse/capi_linux.c:22621)
OSError: [Errno 2] No such file or directory: '/tmp/tmpSbUVZB/97d180c4f916faf61fb3d64aa2263961+52'

This error doesn't happen on the Jenkins server.

My suspicion is that around v4.0 the Linux VFS may have changed the way directory listings are cached, so this test which checks if something exists (OSError on induced API fail) then checks again (API success) is failing the 2nd time because the 2nd request is being served from the Linux VFS cache instead of asking arv-mount again. The tentative solution is to do a VFS cache invalidation on the directory when there is an API error.