Linux Btrfs filesystem development
 help / color / mirror / Atom feed
From: Qu Wenruo <quwenruo.btrfs@gmx.com>
To: chil L1n <devchill1n@gmail.com>,
	Johannes Thumshirn <Johannes.Thumshirn@wdc.com>
Cc: "linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>
Subject: Re: btrfs error: write time tree block corruption detected
Date: Mon, 8 Mar 2021 17:33:03 +0800	[thread overview]
Message-ID: <6c73793c-e855-12c5-9214-7baddbc840c7@gmx.com> (raw)
In-Reply-To: <100894a0-51c5-6ba9-7688-32203cb822c6@gmx.com>



On 2021/3/8 下午5:23, Qu Wenruo wrote:
>
>
> On 2021/3/8 下午4:56, chil L1n wrote:
>> Hi Johannes,
>>
>> Thanks for the advice. I'm running memtester now. This will take some
>> time as the machine has 32GB RAM.
>> Regarding your explanation, I count two bit position differences, not
>> 1. Can you explain your reasoning?
>
> It looks like Johannes missed one 0, and caused some confusion.
>
> With 0 padded correctly, the result is:
>
> 3276800 = 0b1100100000000000000000
> 1310720 = 0b0101000000000000000000

Oh, no, the value is correct.... It's my hex diff incorrect...
>
> That's why I prefer to use hex:
> 3276800 = 0x320000
> 1310720 = 0x140000
> diff    = 0x200000

The diff is 0x260000 (xor).

But that can still be an indication of bitflip, on that 0x200000 part.

As the current key should be larger than previous key, one bit flip at
0x200000 can cause the problem and trigger the tree-checker.

Thanks,
Qu
>
> Definitely one bit flipped.
>
> Thanks,
> Qu
>
>>
>> Thanks,
>>
>> chill
>>
>>
>> On Mon, Mar 8, 2021 at 9:41 AM Johannes Thumshirn
>> <Johannes.Thumshirn@wdc.com> wrote:
>>>
>>> On 06/03/2021 10:11, chil L1n wrote:
>>>> [2555511.868642] BTRFS critical (device sda4): corrupt leaf: root=258
>>>> block=250975895552 slot=78, bad key order, prev (256703 108 3276800)
>>>> current (256703 108 1310720)
>>>> [2555511.868650] BTRFS error (device sda4): block=250975895552 write
>>>> time tree block corruption detected
>>>
>>> This /might/ be a memory bitflip:
>>>
>>> 3276800 = 0b1100100000000000000000
>>> 1310720 = 0b101000000000000000000
>>>
>>> I guess the highest bit did flip so it should have been:
>>> 3407872 = 0b1101000000000000000000
>>>
>>> (3407872 - 3276800) / 4096.0
>>> 32.0
>>>
>>> Can you run a memtest on the machine to check if the RAM is ok?
>>>
>>> Byte,
>>>          Johannes

  parent reply	other threads:[~2021-03-08  9:33 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-06  9:10 btrfs error: write time tree block corruption detected chil L1n
2021-03-08  8:41 ` Johannes Thumshirn
2021-03-08  8:56   ` chil L1n
2021-03-08  9:23     ` Qu Wenruo
2021-03-08  9:28       ` Qu Wenruo
2021-03-08  9:33       ` Qu Wenruo [this message]
2021-03-08 10:02         ` chil L1n
2021-03-08 10:09           ` Qu Wenruo

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=6c73793c-e855-12c5-9214-7baddbc840c7@gmx.com \
    --to=quwenruo.btrfs@gmx.com \
    --cc=Johannes.Thumshirn@wdc.com \
    --cc=devchill1n@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