public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
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

  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