From: Qu Wenruo <quwenruo.btrfs@gmx.com>
To: Nikolay Borisov <nborisov@suse.com>,
Adam Borowski <kilobyte@angband.pl>,
linux-btrfs@vger.kernel.org, Qu Wenruo <wqu@suse.com>,
David Sterba <dsterba@suse.com>
Subject: Re: splat on 4.15-rc1: invalid ram_bytes for uncompressed inline extent
Date: Tue, 28 Nov 2017 15:03:19 +0800 [thread overview]
Message-ID: <f5bf4809-7f84-97fb-21fa-c07e1745468c@gmx.com> (raw)
In-Reply-To: <27db4f13-dace-75f6-29e4-ddd1050101f8@suse.com>
[-- Attachment #1.1: Type: text/plain, Size: 27631 bytes --]
On 2017年11月28日 14:59, Nikolay Borisov wrote:
>
>
> On 28.11.2017 02:37, Qu Wenruo wrote:
>>
>>
>> On 2017年11月27日 23:29, Nikolay Borisov wrote:
>>>
>>>
>>> On 27.11.2017 15:23, Adam Borowski wrote:
>>>> Hi!
>>>> On 4.15-rc1, I get the following failure:
>>>>
>>>> BTRFS critical (device sda1): corrupt leaf: root=1 block=3820662898688
>>>> slot=43 ino=35691 file_offset=0, invalid ram_bytes for uncompressed inline
>>>> extent, have 134 expect 281474976710677
>>>>
>>>> Repeatable every boot attempt. 4.14 and earlier boot fine; btrfs check
>>>> (progs 4.13.3) doesn't find any badness either.
>>>
>>> The reason why you hit this on 4.15 is because this error is coming from the tree checker.
>>> So how big is the file which inode 35691 represents?
>>
>> The problem is, the reporter is using CONFIG_BTRFS_FS_CHECK_INTEGRITY,
>> which will call btrfs_check_leaf() every time btrfs_mark_buffer_dirty().
>>
>> However just as explained in the fixing patch:
>> https://patchwork.kernel.org/patch/10047489/
>>
>> The timing of call btrfs_mark_buffer_dirty() is not right, one of the
>> most obvious place is for EXTENT_DATA.
>
> Right, that was one of the things which I suspected. So in this case,
> David, do we want to push those fixes to 4.15-rc in some of the upcoming
> pull reqs or are we gonna have FS_INTEGRITY left broken for a release
> (imo not a good thing) ?
BTW, compression level wild memory access fix is even more important.
Just try to mount with "-o compress" then kernel will crash.
Thanks,
Qu
>
>
>>
>> So please apply the above patch to see if it solves the problem.
>>
>> Thanks,
>> Qu
>>>
>>> So the check which fails is:
>>>
>>> if (item_size != BTRFS_FILE_EXTENT_INLINE_DATA_START +
>>> btrfs_file_extent_ram_bytes(leaf, fi)) {
>>> file_extent_err(root, leaf, slot,
>>> "invalid ram_bytes for uncompressed inline extent, have %u expect %llu",
>>> item_size, BTRFS_FILE_EXTENT_INLINE_DATA_START +
>>> btrfs_file_extent_ram_bytes(leaf, fi));
>>> return -EUCLEAN;
>>> }
>>>
>>> BTRFS_FILE_EXTENT_INLINE_DATA_START is 21 based on pahole's output:
>>>
>>> struct btrfs_file_extent_item {
>>> __le64 generation; /* 0 8 */
>>> __le64 ram_bytes; /* 8 8 */
>>> __u8 compression; /* 16 1 */
>>> __u8 encryption; /* 17 1 */
>>> __le16 other_encoding; /* 18 2 */
>>> __u8 type; /* 20 1 */
>>> __le64 disk_bytenr; /* 21 8 */
>>> __le64 disk_num_bytes; /* 29 8 */
>>> __le64 offset; /* 37 8 */
>>> __le64 num_bytes; /* 45 8 */
>>>
>>> /* size: 53, cachelines: 1, members: 10 */
>>> /* last cacheline: 53 bytes */
>>> };
>>>
>>> The inline extent size is 113 so 21 + 113 should is 134 which equals to what we expect. However,
>>> the printing code uses btrfs_file_extent_inline_len and the tree-checker code uses directly the
>>> ram bytes. And this function does the correct thing according to whether the file is compressed or not.
>>> So Qu, perhaps the code needs to be changed or is this a genuine bug ?
>>>
>>>>
>>>> [ 11.347451] BTRFS info (device sda1): use lzo compression
>>>> [ 11.352914] BTRFS info (device sda1): using free space tree
>>>> [....] Activating lvm and md swap...[ ok done.
>>>> [....] Checking file systems...fsck from util-l
>>>> [ 11.660352] BTRFS critical (device sda1): corrupt leaf: root=1 block=3820662898688 slot=43 ino=35691 file_offset=0, invalid ram_bytes for uncompressed inline extent, have 134 expect 281474976710677
>>>> inux 2.30.2
>>>> [ 11.678550] BTRFS info (device sda1): leaf 3820662898688 total ptrs 103 free space 4350
>>>> [ 11.687767] item 0 key (35663 12 32909) itemoff 16263 itemsize 20
>>>> [ 11.695021] item 1 key (35663 108 0) itemoff 15751 itemsize 512
>>>> [ 11.701274] inline extent data size 509
>>>> ok
>>>> [ 11.705704] item 2 key (35664 1 0) itemoff 15591 itemsize 160
>>>> [ 11.713034] inode generation 1292 size 509 mode 100644
>>>> [ 11.718811] item 3 key (35664 12 32909) itemoff 15571 itemsize 20
>>>> [ 11.725113] item 4 key (35664 108 0) itemoff 15059 itemsize 512
>>>> [ 11.732168] inline extent data size 509
>>>> done.
>>>> [ 11.736280] item 5 key (35665 1 0) itemoff 14899 itemsize 160
>>>> [ 11.742681] inode generation 1292 size 457 mode 100644
>>>> [ 11.748275] item 6 key (35665 12 32909) itemoff 14879 itemsize 20
>>>> [ 11.754584] item 7 key (35665 108 0) itemoff 14411 itemsize 468
>>>> [ 11.760674] inline extent data size 457
>>>> [ 11.764780] item 8 key (35666 1 0) itemoff 14251 itemsize 160
>>>> [ 11.770711] inode generation 1292 size 533 mode 100644
>>>> [....]
>>>> [ 11.776145] item 9 key (35666 12 32909) itemoff 14231 itemsize 20
>>>> Cleaning up temp
>>>> [ 11.783069] item 10 key (35666 108 0) itemoff 13697 itemsize 534
>>>> orary files...
>>>> [ 11.790666] inline extent data size 533
>>>> [ 11.795980] item 11 key (35668 1 0) itemoff 13537 itemsize 160
>>>> [ 11.801989] inode generation 1292 size 319 mode 100644
>>>> /tmp
>>>> [ 11.807413] item 12 key (35668 12 32909) itemoff 13517 itemsize 20
>>>> [ 11.814250] item 13 key (35668 108 0) itemoff 13247 itemsize 270
>>>> [ 11.820512] inline extent data size 319
>>>> [ 11.825539] item 14 key (35669 1 0) itemoff 13087 itemsize 160
>>>> [ 11.831577] inode generation 1292 size 375 mode 100644
>>>> [ 11.837149] item 15 key (35669 12 32909) itemoff 13067 itemsize 20
>>>> [ 11.843873] item 16 key (35669 108 0) itemoff 12783 itemsize 284
>>>> ok
>>>> [ 11.850098] inline extent data size 375
>>>> [ 11.855579] item 17 key (35670 1 0) itemoff 12623 itemsize 160
>>>> [ 11.862861] inode generation 1292 size 168 mode 100644
>>>> .
>>>> [ 11.869194] item 18 key (35670 12 33512) itemoff 12588 itemsize 35
>>>> [ 11.876467] item 19 key (35670 108 0) itemoff 12399 itemsize 189
>>>> [ 11.883564] inline extent data size 168
>>>> [ 11.888551] item 20 key (35676 1 0) itemoff 12239 itemsize 160
>>>> [ 11.895421] inode generation 1292 size 512 mode 100600
>>>> [ 11.901719] item 21 key (35676 12 32911) itemoff 12218 itemsize 21
>>>> [ 11.909045] item 22 key (35676 108 0) itemoff 11685 itemsize 533
>>>> [ 11.916136] inline extent data size 512
>>>> [ 11.921125] item 23 key (35685 1 0) itemoff 11525 itemsize 160
>>>> [ 11.928047] inode generation 1292 size 32128 mode 100644
>>>> [ 11.934553] item 24 key (35685 12 32783) itemoff 11508 itemsize 17
>>>> [....] Mounting
>>>> [ 11.941874] item 25 key (35685 108 0) itemoff 11455 itemsize 53
>>>> local filesystem
>>>> [ 11.949377] extent data disk bytenr 3757990555648 nr 4096
>>>> s...
>>>> [ 11.956471] extent data offset 0 nr 4096 ram 4096
>>>> [ 11.962383] item 26 key (35685 108 4096) itemoff 11402 itemsize 53
>>>> [ 11.969704] extent data disk bytenr 3755041128448 nr 4096
>>>> [ 11.976324] extent data offset 4096 nr 24576 ram 32768
>>>> [ 11.982686] item 27 key (35685 108 28672) itemoff 11349 itemsize 53
>>>> [ 11.990140] extent data disk bytenr 3749090922496 nr 4096
>>>> [ 11.996786] extent data offset 0 nr 4096 ram 4096
>>>> [ 12.002732] item 28 key (35686 1 0) itemoff 11189 itemsize 160
>>>> [ 12.009755] inode generation 1292 size 5023 mode 100644
>>>> [ 12.016204] item 29 key (35686 12 32783) itemoff 11165 itemsize 24
>>>> [ 12.023576] item 30 key (35686 108 0) itemoff 11112 itemsize 53
>>>> [ 12.030665] extent data disk bytenr 3651995594752 nr 4096
>>>> [ 12.037298] extent data offset 0 nr 8192 ram 8192
>>>> [ 12.043184] item 31 key (35687 1 0) itemoff 10952 itemsize 160
>>>> [ 12.050181] inode generation 1292 size 293168 mode 100664
>>>> [ 12.056793] item 32 key (35687 12 32783) itemoff 10935 itemsize 17
>>>> [ 12.064082] item 33 key (35687 108 0) itemoff 10882 itemsize 53
>>>> [ 12.071154] extent data disk bytenr 3752314163200 nr 4096
>>>> [ 12.077745] extent data offset 0 nr 4096 ram 4096
>>>> [ 12.083610] item 34 key (35687 108 4096) itemoff 10829 itemsize 53
>>>> [ 12.090908] extent data disk bytenr 3755041230848 nr 4096
>>>> [ 12.097483] extent data offset 4096 nr 24576 ram 131072
>>>> [ 12.103877] item 35 key (35687 108 28672) itemoff 10776 itemsize 53
>>>> [ 12.111242] extent data disk bytenr 3757145198592 nr 4096
>>>> [ 12.117770] extent data offset 0 nr 4096 ram 4096
>>>> [ 12.123604] item 36 key (35687 108 32768) itemoff 10723 itemsize 53
>>>> [ 12.130962] extent data disk bytenr 3758049980416 nr 4096
>>>> [ 12.137514] extent data offset 0 nr 4096 ram 4096
>>>> [ 12.143391] item 37 key (35687 108 36864) itemoff 10670 itemsize 53
>>>> [ 12.150753] extent data disk bytenr 3755041230848 nr 4096
>>>> [ 12.157273] extent data offset 36864 nr 94208 ram 131072
>>>> [ 12.163722] item 38 key (35687 108 131072) itemoff 10617 itemsize 53
>>>> [ 12.171129] extent data disk bytenr 3749813366784 nr 212992
>>>> [ 12.177888] extent data offset 0 nr 131072 ram 212992
>>>> [ 12.184058] item 39 key (35687 108 262144) itemoff 10564 itemsize 53
>>>> [ 12.191461] extent data disk bytenr 3749925076992 nr 4096
>>>> [ 12.197995] extent data offset 0 nr 28672 ram 32768
>>>> [ 12.204026] item 40 key (35687 108 290816) itemoff 10511 itemsize 53
>>>> [ 12.211465] extent data disk bytenr 3748484284416 nr 4096
>>>> [ 12.218010] extent data offset 0 nr 4096 ram 4096
>>>> [ 12.223846] item 41 key (35691 1 0) itemoff 10351 itemsize 160
>>>> [ 12.230746] inode generation 1292 size 122 mode 100640
>>>> [ 12.237049] item 42 key (35691 12 33516) itemoff 10334 itemsize 17
>>>> [ 12.244314] item 43 key (35691 108 0) itemoff 10200 itemsize 134
>>>> [ 12.251432] inline extent data size 113
>>>> [ 12.256397] item 44 key (35692 1 0) itemoff 10040 itemsize 160
>>>> [ 12.263321] inode generation 1292 size 31 mode 100640
>>>> [ 12.269506] item 45 key (35692 12 33516) itemoff 10021 itemsize 19
>>>> [ 12.276744] item 46 key (35692 108 0) itemoff 9969 itemsize 52
>>>> [ 12.283645] inline extent data size 31
>>>> [ 12.288531] item 47 key (35704 1 0) itemoff 9809 itemsize 160
>>>> [ 12.295350] inode generation 1298 size 23572480 mode 100644
>>>> [ 12.302089] item 48 key (35704 12 32788) itemoff 9787 itemsize 22
>>>> [ 12.309269] item 49 key (35704 108 0) itemoff 9734 itemsize 53
>>>> [ 12.316116] extent data disk bytenr 3753633746944 nr 4096
>>>> [ 12.322679] extent data offset 0 nr 4096 ram 4096
>>>> [ 12.328524] item 50 key (35704 108 4096) itemoff 9681 itemsize 53
>>>> [ 12.335688] extent data disk bytenr 3750878265344 nr 20480
>>>> [ 12.342346] extent data offset 4096 nr 12288 ram 20480
>>>> [ 12.348615] item 51 key (35704 108 16384) itemoff 9628 itemsize 53
>>>> [ 12.355835] extent data disk bytenr 3753633751040 nr 4096
>>>> [ 12.362340] extent data offset 0 nr 4096 ram 4096
>>>> [ 12.368180] item 52 key (35704 108 36864) itemoff 9575 itemsize 53
>>>> [ 12.375435] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.382334] extent data offset 0 nr 3108864 ram 21381120
>>>> [ 12.388784] item 53 key (35704 108 3145728) itemoff 9522 itemsize 53
>>>> [ 12.396187] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.403096] extent data offset 3108864 nr 131072 ram 21381120
>>>> [ 12.409971] item 54 key (35704 108 3276800) itemoff 9469 itemsize 53
>>>> [ 12.417383] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.424276] extent data offset 3239936 nr 1441792 ram 21381120
>>>> [ 12.431256] item 55 key (35704 108 4718592) itemoff 9416 itemsize 53
>>>> [ 12.438694] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.445582] extent data offset 4681728 nr 131072 ram 21381120
>>>> [ 12.452490] item 56 key (35704 108 4849664) itemoff 9363 itemsize 53
>>>> [ 12.459924] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.466841] extent data offset 4812800 nr 1048576 ram 21381120
>>>> [ 12.473841] item 57 key (35704 108 5898240) itemoff 9310 itemsize 53
>>>> [ 12.481276] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.488166] extent data offset 5861376 nr 131072 ram 21381120
>>>> [ 12.495028] item 58 key (35704 108 6029312) itemoff 9257 itemsize 53
>>>> [ 12.502473] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.509355] extent data offset 5992448 nr 786432 ram 21381120
>>>> [ 12.516241] item 59 key (35704 108 6815744) itemoff 9204 itemsize 53
>>>> [ 12.523670] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.530573] extent data offset 6778880 nr 131072 ram 21381120
>>>> [ 12.537469] item 60 key (35704 108 6946816) itemoff 9151 itemsize 53
>>>> [ 12.544918] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.551821] extent data offset 6909952 nr 131072 ram 21381120
>>>> [ 12.558715] item 61 key (35704 108 7077888) itemoff 9098 itemsize 53
>>>> [ 12.566119] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.572994] extent data offset 7041024 nr 131072 ram 21381120
>>>> [ 12.579854] item 62 key (35704 108 7208960) itemoff 9045 itemsize 53
>>>> [ 12.587270] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.594157] extent data offset 7172096 nr 131072 ram 21381120
>>>> [ 12.601029] item 63 key (35704 108 7340032) itemoff 8992 itemsize 53
>>>> [ 12.608416] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.615303] extent data offset 7303168 nr 131072 ram 21381120
>>>> [ 12.622212] item 64 key (35704 108 7471104) itemoff 8939 itemsize 53
>>>> [ 12.629625] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.636499] extent data offset 7434240 nr 131072 ram 21381120
>>>> [ 12.643360] item 65 key (35704 108 7602176) itemoff 8886 itemsize 53
>>>> [ 12.650739] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.657597] extent data offset 7565312 nr 131072 ram 21381120
>>>> [ 12.664472] item 66 key (35704 108 7733248) itemoff 8833 itemsize 53
>>>> [ 12.671876] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.678740] extent data offset 7696384 nr 131072 ram 21381120
>>>> [ 12.685635] item 67 key (35704 108 7864320) itemoff 8780 itemsize 53
>>>> [ 12.693033] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.699875] extent data offset 7827456 nr 131072 ram 21381120
>>>> [ 12.706725] item 68 key (35704 108 7995392) itemoff 8727 itemsize 53
>>>> [ 12.714077] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.720926] extent data offset 7958528 nr 131072 ram 21381120
>>>> [ 12.727750] item 69 key (35704 108 8126464) itemoff 8674 itemsize 53
>>>> [ 12.735091] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.741929] extent data offset 8089600 nr 131072 ram 21381120
>>>> [ 12.748755] item 70 key (35704 108 8257536) itemoff 8621 itemsize 53
>>>> [ 12.756090] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.762925] extent data offset 8220672 nr 131072 ram 21381120
>>>> [ 12.769761] item 71 key (35704 108 8388608) itemoff 8568 itemsize 53
>>>> [ 12.777122] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.783942] extent data offset 8351744 nr 655360 ram 21381120
>>>> [ 12.790748] item 72 key (35704 108 9043968) itemoff 8515 itemsize 53
>>>> [ 12.798089] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.804933] extent data offset 9007104 nr 131072 ram 21381120
>>>> [ 12.811794] item 73 key (35704 108 9175040) itemoff 8462 itemsize 53
>>>> [ 12.819126] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.825941] extent data offset 9138176 nr 131072 ram 21381120
>>>> [ 12.832765] item 74 key (35704 108 9306112) itemoff 8409 itemsize 53
>>>> [ 12.840111] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.846925] extent data offset 9269248 nr 2490368 ram 21381120
>>>> [ 12.853862] item 75 key (35704 108 11796480) itemoff 8356 itemsize 53
>>>> [ 12.861333] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.868147] extent data offset 11759616 nr 131072 ram 21381120
>>>> [ 12.875036] item 76 key (35704 108 11927552) itemoff 8303 itemsize 53
>>>> [ 12.882489] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.889300] extent data offset 11890688 nr 1179648 ram 21381120
>>>> [ 12.896289] item 77 key (35704 108 13107200) itemoff 8250 itemsize 53
>>>> [ 12.903722] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.910524] extent data offset 13070336 nr 131072 ram 21381120
>>>> [ 12.917452] item 78 key (35704 108 13238272) itemoff 8197 itemsize 53
>>>> [ 12.924903] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.931720] extent data offset 13201408 nr 262144 ram 21381120
>>>> [ 12.938630] item 79 key (35704 108 13500416) itemoff 8144 itemsize 53
>>>> [ 12.946076] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.952907] extent data offset 13463552 nr 131072 ram 21381120
>>>> [ 12.959817] item 80 key (35704 108 13631488) itemoff 8091 itemsize 53
>>>> [ 12.967252] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.974078] extent data offset 13594624 nr 131072 ram 21381120
>>>> [ 12.980986] item 81 key (35704 108 13762560) itemoff 8038 itemsize 53
>>>> [ 12.988461] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 12.995310] extent data offset 13725696 nr 131072 ram 21381120
>>>> [ 13.002223] item 82 key (35704 108 13893632) itemoff 7985 itemsize 53
>>>> [ 13.009719] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.016561] extent data offset 13856768 nr 131072 ram 21381120
>>>> [ 13.023514] item 83 key (35704 108 14024704) itemoff 7932 itemsize 53
>>>> [ 13.030966] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.037806] extent data offset 13987840 nr 393216 ram 21381120
>>>> [ 13.044762] item 84 key (35704 108 14417920) itemoff 7879 itemsize 53
>>>> [ 13.052256] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.059093] extent data offset 14381056 nr 131072 ram 21381120
>>>> [ 13.066051] item 85 key (35704 108 14548992) itemoff 7826 itemsize 53
>>>> [ 13.073541] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.080431] extent data offset 14512128 nr 131072 ram 21381120
>>>> [ 13.087390] item 86 key (35704 108 14680064) itemoff 7773 itemsize 53
>>>> [ 13.094859] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.101722] extent data offset 14643200 nr 131072 ram 21381120
>>>> [ 13.108669] item 87 key (35704 108 14811136) itemoff 7720 itemsize 53
>>>> [ 13.116149] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.123004] extent data offset 14774272 nr 655360 ram 21381120
>>>> [ 13.129966] item 88 key (35704 108 15466496) itemoff 7667 itemsize 53
>>>> [ 13.137470] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.144337] extent data offset 15429632 nr 131072 ram 21381120
>>>> [ 13.151302] item 89 key (35704 108 15597568) itemoff 7614 itemsize 53
>>>> [ 13.158810] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.165699] extent data offset 15560704 nr 131072 ram 21381120
>>>> [ 13.172663] item 90 key (35704 108 15728640) itemoff 7561 itemsize 53
>>>> [ 13.180161] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.187003] extent data offset 15691776 nr 131072 ram 21381120
>>>> [ 13.193969] item 91 key (35704 108 15859712) itemoff 7508 itemsize 53
>>>> [ 13.201464] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.208335] extent data offset 15822848 nr 131072 ram 21381120
>>>> [ 13.215338] item 92 key (35704 108 15990784) itemoff 7455 itemsize 53
>>>> [ 13.222803] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.229673] extent data offset 15953920 nr 786432 ram 21381120
>>>> [ 13.236676] item 93 key (35704 108 16777216) itemoff 7402 itemsize 53
>>>> [ 13.244164] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.251047] extent data offset 16740352 nr 131072 ram 21381120
>>>> [ 13.257996] item 94 key (35704 108 16908288) itemoff 7349 itemsize 53
>>>> [ 13.265517] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.272404] extent data offset 16871424 nr 262144 ram 21381120
>>>> [ 13.279356] item 95 key (35704 108 17170432) itemoff 7296 itemsize 53
>>>> [ 13.286886] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.293767] extent data offset 17133568 nr 131072 ram 21381120
>>>> [ 13.300730] item 96 key (35704 108 17301504) itemoff 7243 itemsize 53
>>>> [ 13.308253] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.315145] extent data offset 17264640 nr 131072 ram 21381120
>>>> [ 13.322155] item 97 key (35704 108 17432576) itemoff 7190 itemsize 53
>>>> [ 13.329668] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.336582] extent data offset 17395712 nr 524288 ram 21381120
>>>> [ 13.343576] item 98 key (35704 108 17956864) itemoff 7137 itemsize 53
>>>> [ 13.351102] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.358009] extent data offset 17920000 nr 131072 ram 21381120
>>>> [ 13.364968] item 99 key (35704 108 18087936) itemoff 7084 itemsize 53
>>>> [ 13.372493] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.379398] extent data offset 18051072 nr 131072 ram 21381120
>>>> [ 13.386367] item 100 key (35704 108 18219008) itemoff 7031 itemsize 53
>>>> [ 13.394000] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.400911] extent data offset 18182144 nr 131072 ram 21381120
>>>> [ 13.407917] item 101 key (35704 108 18350080) itemoff 6978 itemsize 53
>>>> [ 13.415531] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.422432] extent data offset 18313216 nr 393216 ram 21381120
>>>> [ 13.429439] item 102 key (35704 108 18743296) itemoff 6925 itemsize 53
>>>> [ 13.437056] extent data disk bytenr 3753678123008 nr 21381120
>>>> [ 13.443964] extent data offset 18706432 nr 131072 ram 21381120
>>>> [ 13.450985] assertion failed: 0, file: fs/btrfs/disk-io.c, line: 3863
>>>
>>> I guess the code here is :
>>>
>>> void btrfs_mark_buffer_dirty(struct extent_buffer *buf)
>>> {
>>>
>>> #ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
>>> if (btrfs_header_level(buf) == 0 && btrfs_check_leaf(root, buf)) {
>>> btrfs_print_leaf(buf);
>>> ASSERT(0);
>>> }
>>> #endif
>>> }
>>>
>>>
>>> There was an issue with the leaf checker being used in btrfs_mark_buffer_dirty, Qu is this yet another instance of that ?
>>>
>>>> [ 13.458466] ------------[ cut here ]------------
>>>> [ 13.464054] kernel BUG at fs/btrfs/ctree.h:3457!
>>>> [ 13.469655] invalid opcode: 0000 [#1] SMP
>>>> [ 13.474609] Modules linked in: nouveau video ttm
>>>> [ 13.480174] CPU: 2 PID: 79 Comm: kworker/u12:1 Tainted: G W 4.15.0-rc1-debug-ubsan-00019-g1ff31238a542 #1
>>>> [ 13.492026] Hardware name: System manufacturer System Product Name/M4A77T, BIOS 2401 05/18/2011
>>>> [ 13.502055] Workqueue: btrfs-delalloc btrfs_delalloc_helper
>>>> [ 13.508626] task: ffff880220110280 task.stack: ffffc900010bc000
>>>> [ 13.515553] RIP: 0010:assfail.constprop.19+0x18/0x30
>>>> [ 13.521512] RSP: 0018:ffffc900010bfa58 EFLAGS: 00010292
>>>> [ 13.527739] RAX: 0000000000000039 RBX: ffff880221a223f8 RCX: 0000000000000000
>>>> [ 13.535935] RDX: 0000000000000001 RSI: 0000000000000086 RDI: ffffffff8378eb8c
>>>> [ 13.544106] RBP: ffff88021dfa7800 R08: ffff880223eba800 R09: ffff8802202d9200
>>>> [ 13.552276] R10: 0000000000001000 R11: 0000000000000000 R12: ffff880226246000
>>>> [ 13.560446] R13: 00000000002625ed R14: ffffc900010bfaf0 R15: ffffc900010bfc78
>>>> [ 13.568642] FS: 0000000000000000(0000) GS:ffff88022fc80000(0000) knlGS:0000000000000000
>>>> [ 13.577785] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>>>> [ 13.584521] CR2: 0000561bd0bcfe90 CR3: 0000000002609000 CR4: 00000000000006e0
>>>> [ 13.592717] Call Trace:
>>>> [ 13.596166] btrfs_mark_buffer_dirty+0x19c/0x290
>>>> [ 13.601921] setup_items_for_insert+0x231/0x5c0
>>>> [ 13.607603] __btrfs_drop_extents+0xc72/0x12d0
>>>> [ 13.613165] cow_file_range_inline.constprop.38+0x1f8/0xa50
>>>> [ 13.619853] ? btrfs_compress_pages+0xfe/0x200
>>>> [ 13.625431] compress_file_range.constprop.36+0x52a/0xaa0
>>>> [ 13.631982] ? ttwu_do_wakeup+0x2b/0x230
>>>> [ 13.637008] ? submit_compressed_extents+0x610/0x610
>>>> [ 13.643078] async_cow_start+0x33/0x70
>>>> [ 13.647923] normal_work_helper+0x88/0x3c0
>>>> [ 13.653118] process_one_work+0x21a/0x670
>>>> [ 13.658223] ? pwq_activate_delayed_work+0x5c/0x100
>>>> [ 13.664194] worker_thread+0x53/0x500
>>>> [ 13.668936] ? manage_workers+0x1e0/0x1e0
>>>> [ 13.674019] kthread+0x169/0x220
>>>> [ 13.678301] ? kthread_create_worker_on_cpu+0x40/0x40
>>>> [ 13.684446] ret_from_fork+0x1f/0x30
>>>> [ 13.688998] Code: 00 00 31 c0 48 83 c4 28 5b 5d 41 5c 41 5d 41 5e 41 5f c3 89 f1 48 c7 c2 13 61 3e 82 48 89 fe 48 c7 c7 c0 2e 3e 82 e8 04 76 b4 ff <0f> 0b 48 c7 c7 d0 29 b1 82 e8 6a c0 2b 00 90 90 90 90 90 90 90
>>>> [ 13.710797] RIP: assfail.constprop.19+0x18/0x30 RSP: ffffc900010bfa58
>>>> [ 13.718372] ---[ end trace 5e6a02f9afd2bb3c ]---
>>>> [ 13.874374] BTRFS info (device sdb1): enabling auto defrag
>>>> [ 13.880974] BTRFS info (device sdb1): using free space tree
>>>> [ 13.887613] BTRFS info (device sdb1): has skinny extents
>>>> [ 86.768192] sysrq: SysRq : Emergency Sync
>>>> [ 87.344192] sysrq: SysRq : Emergency Remount R/O
>>>> [ 87.600191] sysrq: SysRq : Resetting
>>>>
>>>>
>>>> Meow!
>>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]
next prev parent reply other threads:[~2017-11-28 7:04 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-27 13:23 splat on 4.15-rc1: invalid ram_bytes for uncompressed inline extent Adam Borowski
2017-11-27 14:22 ` David Sterba
2017-11-28 0:51 ` Qu Wenruo
2017-11-28 1:16 ` Adam Borowski
2017-11-28 14:01 ` David Sterba
2017-11-27 15:29 ` Nikolay Borisov
2017-11-28 0:37 ` Qu Wenruo
2017-11-28 6:59 ` Nikolay Borisov
2017-11-28 7:03 ` Qu Wenruo [this message]
2017-11-28 7:05 ` Nikolay Borisov
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=f5bf4809-7f84-97fb-21fa-c07e1745468c@gmx.com \
--to=quwenruo.btrfs@gmx.com \
--cc=dsterba@suse.com \
--cc=kilobyte@angband.pl \
--cc=linux-btrfs@vger.kernel.org \
--cc=nborisov@suse.com \
--cc=wqu@suse.com \
/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).