Hi Andre
Did you dig into that whole vmtruncate() calling sequence that we discussed in
October?
YAFFS runs fine with a hacked up version of fsx using yaffs direct. I have
discussed this a person who used fsx a lot and he said that fsx is good for
kicking up cache inconsistencies.
I hunch that is what is happening here: Likely the page cache is not being
cleared properly.
-- Charles
On Tuesday 02 October 2007 08:09:56 Andre Renaud wrote:
> When running fsx (file system exerciser, from freebsd/apple -
> http://www.freebsd.org/cgi/cvsweb.cgi/src/tools/regression/fsx/), we are
> seeing some failures when doing truncate operations. The behaviour seems
> to be:
> Open a new file
> Write some data
> truncate the file so that it is shorter
> truncate it so that it is larger - the intervening space should be all
> nuls (see ftruncate manpage).
> Write some data at the new end of the file, thus leaving the hole in the
> middle.
>
> fsx complains that the intervening space is not-nul.
>
> I haven't been able to write a straight forward test case, so it is
> possible that this bug is intermittent, or my interpretation of the fsx
> output is wrong.
>
> Also, the problem seems to go away if I force fsx to only truncate onto
> page boundaries (multiples of 2048 bytes).
>
> I used the following command line to trigger the failure:
> ./fsx -N 10000 /mnt/foo
>
> I've attached the output of fsx, although the relevant parts are the top:
> READ BAD DATA: offset = 0xdd7c, size = 0xd933
> OFFSET GOOD BAD RANGE
> 0x f000 0x0000 0x6c22 0x 7fc
>
> and the bottom:
> 9602(130 mod 256): MAPREAD 0x2d86c thru 0x382f1 (0xaa86 bytes)
> 9603(131 mod 256): TRUNCATE DOWN from 0x3c5fd to 0xb013 ******WWWW
> 9604(132 mod 256): WRITE 0x19606 thru 0x282e0 (0xecdb bytes)
> HOLE ***WWWW
> 9605(133 mod 256): WRITE 0x1d4e2 thru 0x1dfd5 (0xaf4 bytes)
> 9606(134 mod 256): MAPREAD 0xdd7c thru 0x1b6ae (0xd933 bytes)
> ***RRRR***
>
> This indicates that at offset 0xf000, it was expecting to read nuls
> (GOOD: 0x0000), but it read non null (BAD: 0x6c22), having done a
> truncate down to 0xb013,
>
> Does anyone know about anything like this?
> Andre