Bug #7846


[FUSE] Fuse MagicDirApiError test failure, kernel version specific?

Added by Peter Amstutz over 8 years ago. Updated about 8 years ago.

Assigned To:
Target version:
Story points:


ERROR: runTest (tests.test_mount.MagicDirApiError)
Traceback (most recent call last):
  File "/home/peter/work/arvados/services/fuse/tests/", 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.

Actions #1

Updated by Peter Amstutz over 8 years ago

  • Description updated (diff)
Actions #2

Updated by Tom Clegg over 8 years ago

I think this is only a test bug, i.e., it wouldn't cause noticeable trouble in actual usage. It means you need to wait some number of milliseconds for an API server problem to go away, which is fine because you shouldn't need to depend on the exact timing of network/server problems getting fixed.

Possible fix: use mock/patch to set allow_dirent_cache=False for everything during this test case.

Actions #3

Updated by Peter Amstutz about 8 years ago

Bugfix in branch 7846-magic-invalidate-entry

Actions #4

Updated by Tom Clegg about 8 years ago

  • Category set to FUSE
  • Assigned To set to Peter Amstutz
  • Target version set to 2016-02-03 Sprint

e399a43 LGTM

Actions #5

Updated by Peter Amstutz about 8 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

Applied in changeset arvados|commit:cabbceab8a2e164f2c4f5afb0e2062dd02fd7790.


Also available in: Atom PDF