From: "Richard A. Lochner" <lochner@clone1.com>
To: andrew.j.wade@gmail.com
Cc: linux-btrfs@vger.kernel.org
Subject: Re: BTRFS Data at Rest File Corruption
Date: Thu, 12 May 2016 13:26:04 -0500 [thread overview]
Message-ID: <1463077564.3636.65.camel@clone1.com> (raw)
In-Reply-To: <CAAuLxcaQ1Uo+pff9AtD74UwUvo5yYKBuNLwKzjVMWV1kt2DcRQ@mail.gmail.com>
Andrew,
I agree with your supposition about the metadata and corrupted RAM.
I verified that the data blocks on both devices are equal (see my reply
to Austin for the commands I used. I believe that they correctly prove
that the blocks are, in fact, equal.
I am not sure I have the skills to "walk the checksum tree manually" as
you described. I would also like to verify that the checksum blocks
agree as I expect they do, but I may have to "bone up" on my tree
walking skills first.
Thanks for your help.
Rick Lochner
On Wed, 2016-05-11 at 21:16 -0400, Andrew Wade wrote:
>
> I would expect the "data at rest" to be good too. But perhaps
> something happened to the metadata (checksum). If the checksum was
> corrupted in RAM it could be written back to the disks due to updates
> elsewhere in the metadata node.
> If this is what happened I would expect the metadata node containing
> the checksum to have a recent generation number.
> I'm not actually a BTRFS developer myself, but you might be able to
> find the generation by using btrfs-debug-tree from btrfs-tools.
> btrfs-debug-tree -r /dev/sdc1 will give you the block number of the
> checksum tree root, which you can then feed into btrfs-debug-tree -b
> #### /dev/sdc1 and walk the tree manually. You're looking for the
> largest key before 3037444042752.
> For dumping the data and metadata blocks I think btrfs-map-logical is
> what you need, though to be honest I've never used this tool myself.
> Even if the file data is still good I don't know of a simple way to
> tell BTRFS to ignore the checksums for a file. It is possible to
> regenerate the checksum tree for the entire filesystem, but I
> personally wouldn't do that unless you really need the file.
> regards,
> Andrew
>
prev parent reply other threads:[~2016-05-12 18:26 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-11 18:36 BTRFS Data at Rest File Corruption Richard Lochner
2016-05-11 19:01 ` Roman Mamedov
2016-05-11 19:26 ` Austin S. Hemmelgarn
2016-05-12 17:49 ` Richard A. Lochner
2016-05-12 18:29 ` Austin S. Hemmelgarn
2016-05-12 21:53 ` Goffredo Baroncelli
2016-05-12 23:15 ` Richard A. Lochner
2016-05-13 1:41 ` Chris Murphy
2016-05-13 4:49 ` Richard A. Lochner
2016-05-13 17:46 ` Chris Murphy
2016-05-15 18:43 ` Richard A. Lochner
2016-05-16 6:07 ` Chris Murphy
2016-05-16 11:33 ` Austin S. Hemmelgarn
2016-05-16 21:20 ` Richard A. Lochner
2016-05-16 22:43 ` Chris Murphy
2016-05-16 23:44 ` Richard A. Lochner
2016-05-17 3:42 ` Chris Murphy
2016-05-17 11:26 ` Austin S. Hemmelgarn
2016-05-13 16:28 ` Goffredo Baroncelli
2016-05-13 16:54 ` Austin S. Hemmelgarn
2016-05-12 6:49 ` Chris Murphy
[not found] ` <CAAuLxcaQ1Uo+pff9AtD74UwUvo5yYKBuNLwKzjVMWV1kt2DcRQ@mail.gmail.com>
2016-05-12 18:26 ` Richard A. Lochner [this message]
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=1463077564.3636.65.camel@clone1.com \
--to=lochner@clone1.com \
--cc=andrew.j.wade@gmail.com \
--cc=linux-btrfs@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).