Re: corrupt leaf: root=1 block=57567265079296 slot=83, bad key order

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2019/2/14 下午8:35, Hugo Mills wrote:
> On Thu, Feb 14, 2019 at 08:25:26PM +0800, Qu Wenruo wrote:
>> On 2019/2/14 下午7:58, Jesper Utoft wrote:
>>> Hello Fellow BTRFS users.
>>>
>>> I have run into the bad key order issue.
>>> corrupt leaf: root=1 block=57567265079296 slot=83, bad key order, prev
>>> (18446744073709551605 0 57707594776576) current (18446726481523507189
>>> 0 57709742260224)
>>> The lines repeats over and over..
>>>
>>> I read a thread between Hugo Mills and Eric Wolf about a similar issue
>>> and i have gathered the same info. 
>> Now we have all the needed info.
>>
>>>
>>> I understand that it probably is hardware related, i have been running
>>> memtest for 60h+ to see if i could reproduce it.
>>> I also tried to run btrfs check --recover but it did not help.
>>>
>>> My questions is if it can be fixed?
>>
>> Yes, but only manual patching is possible yet.
> 
>    David: What needs to be done to get the bitflip-in-key patches
> added to btrfs check? They've been lurking in some patch stack for
> literally years, and would have dealt with this one easily.

It's not David's fault, it's all my fault.

I just forgot I still need to update that patchset (a big vacation just
ended on my side).
There are still valid comment on that patchset.

I'll update that patchset in recent days.

> 
> [snip]
>> Thankfully, all keys around give us a pretty good idea what the original
>> value should be: (FREE_SPACE UNTYPED 57709742260224).
>>
>> And for the raw value:
>> bad:  0xffffeffffffffff5
>> good: 0xfffffffffffffff5
>>             ^
>> e->f, one bit get flipped.
>> (UNTYPED is the same value for UNKNOWN.0, so don't worry about that).
>>
>> I have created a special branch for you:
>> https://github.com/adam900710/btrfs-progs/tree/dirty_fix
>>
>> Just compile that btrfs-progs, no need to install, then excute the
>> following command inside btrfs-progs directory:
>>
>> # ./btrfs-corrupt-block -X <device>
> 
>    BUT, don't do it until you've found and replaced the bad RAM that
> broke it in the first place.

Sure.

> 
>> And your report just remind me to update the write time tree block
>> checker....
> 
>    Looking forward to dealing with a whole new type of "btrfs is
> broken!" complaints on IRC (followed by "can't I just let it carry on
> regardless?"). ;)

Definitely :-P.

Thanks,
Qu

> 
>    Hugo.
> 

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux