On Fri, Jan 6, 2017 at 2:19 AM, <patrice.laporte@schneider-electric.com> wrote:

Hi to all of you, readers, and a happy new year to all of you

I have the exact same problem, verry recently (last month) it happened twice, so let me give you some information about my situation :

1. We can't reproduced it, it happended twice, that's all we know
2. We use yaffs2, with inband tags, on a 2K page NAND flash
3. What we have is a file with a whole page of 0: actually it's an area of 2032 bytes at 0x00 in the file, so I assume tags is 16 bytes in the page on NAND.


That is almost certainly a missing page of data. My bet is that the location of those bytes is page aligned (ie. located at a multiple of 2032).
If the tags got corrupted then yaffs would not know where the chunk fits into a file and when you read the file it would appear as a "hole" which reads back as zero bytes.


4. We didn't dump the raw flash, unfortunatly, so I only have the two "corrupted" files, not the raw FS image for forensic

More about me and this problem:

    - it happened really recently, and I jumped in the investigation this week only. I'm new on yaffs and just started reading about it (web site and code source reading), and I'm a bit confused and don't know where to start investigation.
    - I'm working on old version of source code, under commercial licence, with our own adjustement/patch I presume, with interface to VxWorks : so there is no way for me to try migrating to latest yaffs version
Since I'm starting investigation, I will try to post here some result if they can be usefull, but for now I will appreciate some help to guide me: if someone can tell me where to start looking in source code, it will be verry nice.

In the same time, I will also look at the NAND driver, maybe issue is lower than the FS

I would certainly check that the ECC is working correctly and all the driver algorithms are correctly implimented.
 


Best regards and many thanks
Patrice

On 2016-05-03 14:03, Bettega Stefano wrote:
> Hi,
> we have a strange problem reading a file. After 8192 bytes there is a hole
> of 512 bytes that reads out as 0, because the page seems to be marked as
> deleted.
>
> static int yaffs_rd_data_obj(struct yaffs_obj *in, int inode_chunk, u8 * > buffer)
>
> returns the whole buffer filled with zeros as chunk seems not to be found
> in file.
>
> If we RAW read NAND, data is almost there, but in spare area we read page_status
> = 0. It seems to be marked as "delete", but how/where yaffs decide to mark
> it is as deletedRe: [Yaffs] yaffs1 page_status = 0


_______________________________________________
yaffs mailing list
yaffs@stoneboat.aleph1.co.uk
http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs