Project

General

Profile

Actions

Fix #2215

closed

ceph-fuse does not invalidate page cache

Added by Greg Farnum about 12 years ago. Updated about 11 years ago.

Status:
Resolved
Priority:
High
Assignee:
Category:
-
Target version:
% Done:

0%

Source:
Development
Tags:
Backport:
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
Labels (FS):
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Right now the userspace client doesn't invalidate the page cache when it loses the cache capability on an inode. Apparently this is due to deadlock with the way that FUSE invalidation interacts with our implementation.

Obviously we'll need to fix it sometime before we tell people the filesystem is production ready.

Actions #1

Updated by Sam Lang over 11 years ago

  • Status changed from New to 7
  • Assignee set to Sam Lang
Actions #2

Updated by Sage Weil over 11 years ago

  • Project changed from Ceph to CephFS
  • Category deleted (11)
Actions #3

Updated by Sage Weil over 11 years ago

  • Target version set to v0.54b
Actions #4

Updated by Sam Lang over 11 years ago

Running in teuthology with the multiclient test, I see a segfault in one of the fuse clients on the plana nodes. With the addition of a sleep in the thread before calling the ino_invalidate_cb, the segv is reproducible.

The problem is in the ceph-fuse.cc and fuse_ll.cc code. Teardown of the fuse session and channel was happening before we called Client::unmount, which breaks with the unmount calling the invalidate callback for inodes.

The proposed fix in wip-2215 is to separate out the fuse finalize code from ceph_fuse_ll_main and call it after the Client::unmount finishes.

Actions #5

Updated by Sage Weil over 11 years ago

wip-2215 looks good to me!

Actions #6

Updated by Sage Weil over 11 years ago

  • Priority changed from Normal to High
Actions #7

Updated by Greg Farnum over 11 years ago

  • Target version deleted (v0.54b)
Actions #8

Updated by Sage Weil about 11 years ago

  • Tracker changed from Bug to Fix
Actions #9

Updated by Ian Colle about 11 years ago

  • Target version set to v0.59
Actions #10

Updated by Ian Colle about 11 years ago

  • Translation missing: en.field_story_points set to 1.00
Actions #11

Updated by Greg Farnum about 11 years ago

  • Target version changed from v0.59 to v0.60
Actions #12

Updated by Greg Farnum about 11 years ago

  • Target version changed from v0.60 to v0.59
Actions #13

Updated by Sam Lang about 11 years ago

I add the fuse_use_invalidate_cb: true option in the ceph-qa-suite to the basic and verify fs suites (in the btrfs.yamls for now). Once those pass reliably we can adjust the default in the config.

Actions #14

Updated by Greg Farnum about 11 years ago

Which automatic tests actually run those? I'm not sure that the nightlies do so right now.

Actions #15

Updated by Sage Weil about 11 years ago

  • Target version changed from v0.59 to v0.60
Actions #16

Updated by Sam Lang about 11 years ago

Those tests are part of the full regression test suite.

Actions #17

Updated by Greg Farnum about 11 years ago

  • Status changed from 7 to Resolved

Sage is turning it on by default now following weeks of testing in the nightlies!

Actions

Also available in: Atom PDF