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.thumsh...@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

Reply via email to