[Bug 244178] [FUSEFS]: underlying file modified leads to corrupted fuse data
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sun Feb 16 22:17:40 UTC 2020
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=244178
Bug ID: 244178
Summary: [FUSEFS]: underlying file modified leads to corrupted
fuse data
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: kern
Assignee: bugs at FreeBSD.org
Reporter: ben.rubson at gmx.com
Hi,
I still face, with 12.1-RELEASE-p2, the issue discussed here :
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230258#c35
Which continued there :
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235774
The issue is the following.
Let's assume raw file is the underlying file.
And fuse file the corresponding fuse file.
1. create raw file with some data
2. open fuse file
3. verify fuse size : correct
4. verify fuse data : correct
5. add some data to raw file
6. verify fuse size : correct (*)
7. verify fuse data : garbage
(*) as expected we have to use fuse options attr_timeout=0 entry_timeout=0.
So, if we keep the fuse file opened, while the underlying one is modified :
- we read the fuse file up to the expected size, perfect ;
- but we read garbage.
If we close and re-open the fuse file, then we correctly read it.
There are 2 possible workarounds :
- use FUSE direct_io mount option ;
- sysctl vfs.fusefs.data_cache_mode = 0.
I don't know whether or not the default behavior is correct.
But at least with Linux, we correctly read the data even keeping the fuse file
opened.
There may then still be a cache issue.
Many thanks for your feedback !
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list