Hi Woody,

If the log messages that you see are "chunk nnn not erased", it might
probably be an error between your NAND device and YAFFS2 (according to a
couple of Google searches).

Ref: http://osdir.com/ml/linux.file-systems.yaffs/2006-09/msg00033.html

--
Thanu


On Mon, May 27, 2013 at 10:22 AM, Woody Wu <narkewo...@gmail.com> wrote:

> Richard,
>
> If Yaffs2 is the cause, how can I write an effective test to exposure it?
>  I straced my test sqlite test program and wanted to understand its IO
> behavior pattern.  The difficulty is that I cannot run strace on my ARM
> target too long since the log will fill the limited memory, but if I don't
> run it enough long, I am not sure it expressed enough information. By far,
> as what I saw in my strace output after serveral minutes running of the
> program, I only saw a lot of llseek() + write() paire on the main database
> file as well as its journal.  From your understanding of sqlite, could you
> tell me what's the file IO pattern as result of running the test program?
>
> By the way, although my test code contains a logic to delete some records
> after the table have already filled with enough many rows, but many of my
> tests results shown that the database corruption happened before the delete
> operation get chance to run.  Maybe this can simply you analysis.
>
> Another thing is very suspicious:  after a while of running the test
> program, I can see from my syslog that there are a log of warning messages,
> something like: Yaffs2 trunk nnnn was not erased.  On one hand, I am not
> sure if this is caused by sqlite or Yaffs2 itself, on the other hand, I
> also cannot prove this really means bad things since the program at that
> moment was still running fine.
>
> -woody
>
>
>
>
> On 27 May 2013 20:47, Richard Hipp <d...@sqlite.org> wrote:
>
> > On Mon, May 27, 2013 at 8:28 AM, Simon Slavin <slav...@bigfraud.org>
> > wrote:
> >
> > >
> > > On 27 May 2013, at 1:25pm, Clemens Ladisch <clem...@ladisch.de> wrote:
> > >
> > > > Woody Wu wrote:
> > > >> I have a testing code, attached in this email, if continuously run
> it
> > > for
> > > >> 20 - 40 hours, the sqlite database will be corrupted.
> > > >>
> > > >> The application is running on an ARM Linux system with Yaffs2
> > filesystem
> > > >> on NAND flashes.
> > > >
> > > > I'd guess that the flash is not very reliable.
> > >
> > > I test on Flash drives.  No problems.  But I don't use yaffs2, I use
> FAT
> > > and HFS+.  I'm not saying there's anything wrong with yaffs2.
> > >
> >
> > (1) Do a web search for "counterfeit flash".  There are a lot of dodgy
> > flash drives and flash memory chips in circulation.  Simon might be using
> > good chips whereas Woody might have a bad one.
> >
> > (2) I'm less willing to give yaffs2 a pass.  Yaffs2 bypasses much of the
> > common filesystem code in the Linux kernel and attempts to do its own
> > thing.  This has been a persistent source of issues. I recommend that
> Woody
> > try Ext4 instead.
> >
> > All that said:  I have compiled Woody's test program and am running it
> now
> > on a Linux workstation.  We'll see what happens after 40 hours....
> >
> > --
> > D. Richard Hipp
> > d...@sqlite.org
> > _______________________________________________
> > sqlite-users mailing list
> > sqlite-users@sqlite.org
> > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> >
>
>
>
> --
> Life is the only flaw in an otherwise perfect nonexistence
>     -- Schopenhauer
>
> narke
> public key at http://subkeys.pgp.net:11371 (narkewo...@gmail.com)
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to