[Mono-dev] [Mono-list] Announce: Mono.Fuse 0.2.0 (+ Required mcs & mono patches)
jonpryor at vt.edu
Tue Sep 12 22:24:41 EDT 2006
Can you elaborate on the tests you've used?
On Tue, 2006-09-12 at 00:08 -0700, Valient Gough wrote:
> There is a program "fsx-linux" which you might find useful. I've
> found bugs in FUSE itself with this program in the past while trying
> to debug my own filesystems.
I managed to find this; it fails nearly instantly with RedirectFS-FH.exe
when run as "fsx-linux mount-point/filename":
jon at balthasar:RedirectFS$ ./redirectfs-fh t ~/tmp > f.txt &
jon at balthasar:RedirectFS$ ./fsx-linux t/fsx2
truncating to largest ever: 0x13e76
domapwrite: mmap: No such device
LOG DUMP (4 total operations):
1(1 mod 256): TRUNCATE UP from 0x0 to 0x13e76
2(2 mod 256): WRITE 0x17098 thru 0x26857 (0xf7c0 bytes)
3(3 mod 256): READ 0xc73e thru 0x1b801 (0xf0c4 bytes)
4(4 mod 256): MAPWRITE 0x32e00 thru 0x331fc (0x3fd bytes)
Correct content saved for comparison
(maybe hexdump "t/fsx2" vs "t/fsx2.fsxgood")
However, "fsx2" and "fsx2.fsxgood" differ only in the last 0x1fd bytes,
and this appears to be because it never writes those bytes to t/fsx2,
but only to t/fsx2.fsxgood. Note that t/fsx2 never writes at 0x331fd,
while t/fsx2.fsxgood *does*:
OnOpenHandle (/fsx2, 9)=9
OnWriteHandle (/fsx2, 9, 858, 26000)=858
OnReadHandle (/fsx2, 9, b000, c000)=b000
OnReadHandle (/fsx2, 9, 1000, 17000)=1000
OnTruncateFile (/fsx2, 9, 331fd)=0
OnOpenHandle (/fsx2.fsxgood, 10)=10
OnWriteHandle (/fsx2.fsxgood, 10, 1000, 0)=1000
OnWriteHandle (/fsx2.fsxgood, 10, 1fd, 33000)=1fd
Plus, given the output of fsx-linux, the difference appears to be due to
mmap (or lack thereof). If I run `fsx-linux -W t/fsx2` (to disable mmap
writing), things seem to run nicely:
jon at balthasar:RedirectFS$ ./a.out -W t/fsx2
mapped writes DISABLED
truncating to largest ever: 0x32740
truncating to largest ever: 0x39212
truncating to largest ever: 0x3bae9
Is there a known issue with FUSE, fsx-linux & mmap testing, or am I
wrong about this?
Do you have any other fsx-linux tests to suggest?
> Did you try rsync and Evolution? They really do create lots of
> rename-while-open events that are useful for testing assumptions
> related to the primary key (path in your case).
I did rsync earlier today. Found a bug in OnReadDirectory() (it would
skip files on large directories), but rsync currently works. The
OnReadDirectory fix is in GIT. rsyncing to and from
RedirectFS-FH.exe-hosted mount point work as expected.
I haven't tried Evolution yet.
Do you have any other easily runnable tests? Or is hand-crafting test
cases and throwing programs at a filesystem the only way to go?
More information about the Mono-devel-list