Hey Alan, 

Thanks for your input. See reply to Jukka. About the dd command, I am aware of 
and make use of it. Also the reason I could test different things with the same 
image :) 

Greetings, Reto

On 2021/05/18 20:53:39, Alan Carvalho de Assis <acas...@gmail.com> wrote: 
> Hi Reto,
> 
> Mr. Jukka just opened a PR that could help the issue related to the
> cluster issue:
> 
> https://github.com/apache/incubator-nuttx/pull/3740
> 
> When you face an issue with the SDCard a good idea is to do a raw copy
> of it on Linux using the dd command, then you could duplicated the
> issue later.
> 
> If you find an easy way to reproduce the issue, it will make it easier
> for other people duplicate your issue and help to debug it.
> 
> BR,
> 
> Alan
> 
> On 5/18/21, Reto Gähwiler <gret.hexa...@gmail.com> wrote:
> > Dear All,
> >
> > First of all, in case a similar thread pops-up authored by myself, please
> > ignore.
> >
> > Recently we discovered some issues with the FAT32 partition on the SD-Card
> > used in our device running on nuttx. There are actually a bunch of issues
> > we are strugle to understand related to the filesystem.
> > The issue discovered recently is, that a statfs call won't return the true
> > number of free clusters. It rather returns what ever is in the FS INFO
> > section of the FAT32 partition. Inserting such a "corrupted" card into an
> > SD-Card reader and mounting it to Windows shows following:
> >
> > #1 Windows file explorer reports the correct free space.
> > #2 Comparing the free space in file explorer and looging at FS INFO section
> > with "Active - Disk Editor" doesn't line up. Windows wouldn't write any
> > longer the FS INFO section on that card. Even if all the files/dires are
> > wiped from the card.
> > #3 Whenever files are added / removed under nuttx the FS INFO section would
> > be updated by nuttx, but to the wrong number since the base is wrong.
> > #4 Mounting the card to linux and properly unmount it might actually fix
> > the issue. But not always!
> > #5 Quick format the card resolved the issue too. Windows would once again
> > write the FS INFO section and nuttx would shows the correct free space.
> > #5 Running a "chkdsk /f" under windows on that broken SD-Card fixes the
> > issue too. Reporting a broken file in a root folder on that card.
> >
> > We indeed had issues with corrupted files in the past. Usually in the
> > logging directory, which is accessed most. How they corrupt we do not know.
> > The corruption is recognised in the following ways:
> >
> > #A cryptic and too long file names, we only make use of short file names
> > (8.3)
> > #B files whcih became folders
> > #C sizes which are not possible
> > #D combinations of the above
> >
> > Our application supervises the SD-Card with statfs and removes files once
> > we hit a quota of 0.85. Therefore, the card is not filling up. However, the
> > most recent recognition of this behvaiour was due to an application bug
> > which allowed the card to fill up under some circumstances.
> > Playing around with a quickformated SD-Card, filled up with data and trying
> > to retrigger the issue revealed that I never get the ENOSPC but only EIO
> > once the card is full! But never managed to get the statfs issue.
> > For the logging we use the fstream family (fopen, fwrite, fread, fflush,
> > fsync) commands. For config files and other things also the low level
> > read/write are used.
> >
> > One more thing, among all the logging files we once in a while have
> > corrupted file content. Typically that is a skipped byte or doubled byte
> > (we use protobuf and can see that encoding the binary). This seems to
> > happen during reading but also writing the file.
> >
> > At the moment we didn't investigate the fat driver of nuttx but rather
> > tried to analyse the problem. And now we have a bunch of question marks.
> >
> > #1 Has anyone recongised similar issues?
> > #2 Does anyone know a tool which can be used in nuttx equivalent to chkdsk
> > under windows? Or do quick format?
> > #3 Why is there no ENOSPC but EIO once the card is full?
> > #4 What triggers the corrupted files? How robust is the nuttx FAT32
> > considering stackdumps and powerlosses?
> >
> > For the purpose of investigation, I have an image of the SD-Card when it
> > was in the state of reporting wrong sizes in nuttx.
> >
> > Looking forward to your answers and ideas. Appreciate your help,
> >
> > Reto
> >
> 

Reply via email to