On 2017年11月17日 23:50, Marc MERLIN wrote:
> On Fri, Nov 17, 2017 at 04:12:07PM +0800, Qu Wenruo wrote:
>>
>>
>> On 2017年11月17日 15:30, Marc MERLIN wrote:
>>> Here's the whole output:
>>> gargamel:~# btrfs-debug-tree -t 258 /dev/mapper/raid0d1 | grep 1919805647
>>
>> Sorry, I missed "-C10" parameter for grep.
>  
>                 generation 2231977 transid 2237084 size 64 nbytes 0
>                 block group 0 mode 40755 links 1 uid 33 gid 33 rdev 0
>                 sequence 0 flags 0x1710(none)
>                 atime 1510290002.516060162 (2017-11-09 21:00:02)
>                 ctime 1510477350.88506455 (2017-11-12 01:02:30)
>                 mtime 1510477350.88506455 (2017-11-12 01:02:30)
>                 otime 1510290002.516060162 (2017-11-09 21:00:02)
>         item 26 key (1919785864 INODE_REF 1919785862) itemoff 14683 itemsize 
> 12
>                 index 2 namelen 2 name: 00
>         item 27 key (1919785864 DIR_ITEM 2591417872) itemoff 14637 itemsize 46
>                 location key (1919805647 INODE_ITEM 0) type FILE
>                 transid 2231988 data_len 0 name_len 16
>                 name: 1955-capture.jpg

OK, this DIR_ITEM matches with INODE_REF.
So btrfs-check should only need to insert DIR_INDEX for it.

>         item 28 key (1919785864 DIR_ITEM 3406016191) itemoff 14591 itemsize 46
>                 location key (1919805657 INODE_ITEM 0) type FILE
>                 transid 2231988 data_len 0 name_len 16
>                 name: 1956-capture.jpg
>         item 29 key (1919785864 DIR_INDEX 1957) itemoff 14575 itemsize 16
>                 location key (7383370114097217536 UNKNOWN.211 
> 15651972432879681580) type DIR_ITEM.0
>                 transid 72057594045427176 data_len 0 name_len 0
>                 name: 
>         item 30 key (1919805647 INODE_ITEM 0) itemoff 14415 itemsize 160
>                 generation 2231988 transid 2231989 size 81701 nbytes 81920
>                 block group 0 mode 100644 links 1 uid 33 gid 33 rdev 0
>                 sequence 8 flags 0x14(NOCOMPRESS)
>                 atime 1510290392.703320623 (2017-11-09 21:06:32)
>                 ctime 1510290392.715320477 (2017-11-09 21:06:32)
>                 mtime 1510290392.715320477 (2017-11-09 21:06:32)
>                 otime 1510290392.703320623 (2017-11-09 21:06:32)
>         item 31 key (1919805647 INODE_REF 1919785864) itemoff 14389 itemsize 
> 26
>                 index 1957 namelen 16 name: 1955-capture.jpg
>         item 32 key (1919805647 EXTENT_DATA 0) itemoff 14336 itemsize 53
>                 generation 2231989 type 1 (regular)
>                 extent data disk byte 2381649588224 nr 81920
>                 extent data offset 0 nr 81920 ram 81920
>                 extent compression 0 (none)
>         item 33 key (1919805657 INODE_ITEM 0) itemoff 14176 itemsize 160
>                 generation 2231988 transid 2231989 size 81856 nbytes 81920
>                 block group 0 mode 100644 links 1 uid 33 gid 33 rdev 0
>                 sequence 8 flags 0x14(NOCOMPRESS)
>                 atime 1510290392.919317997 (2017-11-09 21:06:32)
>                 ctime 1510290392.931317852 (2017-11-09 21:06:32)

No extra interesting things here.

> 
> 
>> Although what we could try is to avoid BUG_ON(), but I'm afraid the
>> problem is more severe than my expectation.
>  
> How does it look now?

At least we know what btrfs check should do.
I could dig it a little deeper to see if we could fix it.
(Or something strange happened again)

Thanks
Qu

> 
>> Any idea how such corruption happened?
> 
> Sigh, I wish I knew.
> 
> It feels like every btrfs filesystem I've had between my 3 systems has
> gotten inexplicably corrupted at least once.
> This one is not even using bcache, just dmcrypt underneath.
> 
> It's my only one using btrfs raid (1):
> gargamel:~# btrfs fi show /dev/mapper/raid0d1 
> Label: 'btrfs_space'  uuid: 01334b81-c0db-4e80-92e4-cac4da867651
>         Total devices 2 FS bytes used 1.12TiB
>         devid    1 size 836.13GiB used 722.03GiB path /dev/mapper/raid0d1
>         devid    2 size 836.13GiB used 722.03GiB path /dev/mapper/raid0d2
> 
> Data, RAID0: total=38TiB, used=1.11TiB
> System, RAID1: total2.00MiB, used8.00KiB
> Metadata, RAID1: total.00GiB, used=8.54GiB
> GlobalReserve, single: totalQ2.00MiB, used=0.00B
> 
> Now, I didn't get errors or warnings, or even scrub warnings on it, I just 
> ran 
> btrfs check to see what would happen.
> 
> Marc
> 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to