From: Jamie Lokier <jamie@shareable.org>
To: "Korolev, Alexey" <alexey.korolev@intel.com>
Cc: linux-mtd@lists.infradead.org, mattjreimer@gmail.com,
llandre <r&d2@dave-tech.it>
Subject: Re: JFFS2: file contents in case of data CRC error
Date: Fri, 1 Feb 2008 17:43:33 +0000 [thread overview]
Message-ID: <20080201174332.GB14032@shareable.org> (raw)
In-Reply-To: <523F3D8D8C97554AA47E53DF1A05466A01880BCA@nnsmsx411.ccr.corp.intel.com>
Korolev, Alexey wrote:
> So JFFS2 performed scan on read - found CRC error in node
> -> JFFS2 marked node to be obsolete
> -> As result hole in the file has been formed.
> -> You read 0x0 in the middle of the file.
>
> I think nobody considered such tests before. I am not sure if any file
> system may be reliable in such a case with temperature tests.
>
> Unfortunately I have no idea how this issue could be solved :).
If the corruption makes it impossible to detect the node corresponding
to a block, then indeed how can it be solved? If the bit flips happen
in the node header, not the data, there really is no way to know that
some data is lost from the right block.
I'm thinking the only way to detect this with high reliability is to
store summaries of the existence of blocks in another part of storage,
with checksums and serial numbers - like some of the latest disk
filesystems begin to. Then missing nodes are detectable and can
translate to I/O errors in userspace.
The other way, is for apps themselves to store checksums of their
files. I had to do this, because we were getting occasional zeroed
blocks from JFFS2, and that happened in the middle of executables, so
we had apps which would run and occasionally crash or go wrong because
part of their code contained zeroes.
To avoid random wrong behaviour, I checksummed executable programs
before running them. It does seem it would be better if the
filesystem offered better integrity or error guarantees.
-- Jamie
next prev parent reply other threads:[~2008-02-01 19:15 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-31 16:54 JFFS2: file contents in case of data CRC error llandre
2008-01-31 19:19 ` Korolev, Alexey
2008-02-01 14:00 ` llandre
2008-02-01 15:53 ` Korolev, Alexey
2008-02-01 17:43 ` Jamie Lokier [this message]
2008-02-02 17:11 ` llandre
2008-02-04 21:32 ` Jamie Lokier
2008-02-02 16:32 ` llandre
2008-02-04 14:25 ` Korolev, Alexey
2008-01-31 19:22 ` Jffss2_write_super erasing all the blocks Nikhil Bansal (nikbansa)
2008-02-02 19:30 ` SV: " Joakim Tjernlund
2008-01-31 19:42 ` JFFS2: file contents in case of data CRC error Matt Reimer
2008-01-31 22:57 ` Jamie Lokier
2008-02-01 14:01 ` llandre
2008-02-01 14:01 ` llandre
2008-02-02 17:03 ` llandre
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080201174332.GB14032@shareable.org \
--to=jamie@shareable.org \
--cc=alexey.korolev@intel.com \
--cc=linux-mtd@lists.infradead.org \
--cc=mattjreimer@gmail.com \
--cc=r&d2@dave-tech.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox