On 28.11.2017 09:03, Qu Wenruo wrote:
> 
> 
> 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.

That one is already queued in David's misc-4.15 branch ergo it will go
in a pull req this release.

> 
> 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 [email protected]
>>>> 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 [email protected]
>> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to