linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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 --]

  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).