On Tue, May 28, 2013 at 03:08:55AM +0100, Simon Slavin wrote: > > On 28 May 2013, at 2:37am, Woody Wu <narkewo...@gmail.com> wrote: > > > How do you guys think about this: if NAND has an > > IO problem, Yaffs2 should recover it or forward the error to > > applications, right? > > Arguably. The file system can send an error back to the application. > If something does that to SQLite3 SQLite3 will then return the result > SQLITE_IOERR. If your program is correctly looking at the results > returned from every SQLite3 API call, and it's not seeing that error, > it would seem that yaffs2 is not doing the correct thing in this case. > And from what you wrote it seems that rather than return an error to > the program, yaffs2 prefers to write an error message to the console. > Which is not what these things are meant to do. > > > On 28 May 2013, at 2:40am, Woody Wu <narkewo...@gmail.com> wrote: > > > Can you experts explains why a cheap Flash drive can harm an > > application such as sqlite? > > > Does you mean these cheap drive was cheating > > with ECC? > > It might just be so bad that it doesn't even realise something is > wrong. You write something to sector 2336 and later read sector 2336 > and expect to get the same thing back, but instead it returns the > contents of sector 2338. Faulty hardware, perhaps. > > > Otherwise, filesystem should be able to capture IO error (fix > > it or forward), right? > > If by 'forward' you mean to tell the application something went wrong, > then right. But the file system might not know anything is wrong. It > asked for sector 2336 and it got some data. How is it meant to know > the data it retrieved came from the wrong place on the chip ? > > On 28 May 2013, at 2:33am, Woody Wu <narkewo...@gmail.com> wrote: > > > How can I tell what's the current VFS that I was using? Thanks. > > Actually, just ignore that. You couldn't do anything about it even if > you knew. From what Doctor Hipp wrote, I suspect that yaffs2 is > faulty. > > Simon. > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
Very clear explained, Simon. Thanks. On the other hand, I still want to write some test code to exposure Yaffs2's defects on my target. I already wrote a simple one, which just repeatly write to a file and read back to compare its conents. Probably it's too simple to trigger an error. After 72 hours, it haven't reported any error. I really like to hear any suggestion on writing such a test from your experts. Anyway, if the original case was really caused by Yaffs2, I belive there must exist a test to capture it. Do you agree? -woody -- woody I can't go back to yesterday - because I was a different person then. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users