Re: bcache: for-next unable to handle kernel NULL pointer dereference at 0000000000000019

Coly Li
2017-10-23T14:39:58Z

On 2017/10/23 下午10:26, Stefan Priebe - Profihost AG wrote:
> Hi,
> Am 23.10.2017 um 16:00 schrieb Coly Li:
>> On 2017/10/23 下午9:16, Stefan Priebe - Profihost AG wrote:
>>> Hi,
>>>
>>> Am 23.10.2017 um 15:05 schrieb Coly Li:
>>>> On 2017/10/23 下午8:59, Stefan Priebe - Profihost AG wrote:
>>>>> Hi Coly,
>>>>>
>>>>>
>>>>> Am 23.10.2017 um 14:56 schrieb Coly Li:
>>>>>> On 2017/10/23 下午7:42, Stefan Priebe - Profihost AG wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> i picked all bcache patches from for-next to my 4.4 kernel to test the
>>>>>>> new controller.
>>>>>>>
>>>>>>> After doing so i see random kernel panics with the following trace:
>>>>>>
>>>>>> Hi Stefan,
>>>>>>
>>>>>> Thanks for the report. This is the 3rd report I see recently for NULL
>>>>>> pointer dereference, maybe they are related (or maybe not). Is it a
>>>>>> panic when bcache starts to run, or during heavy workload ?
>>>>>
>>>>> It's during heavy / normal workload.
>>>>>
>>>>>> If I may have chance to trigger similar oops on my server, that will be
>>>>>> much easier. So far I cannot reproduce any oops, neither by rebooting
>>>>>> and assemble bcache device by udev rules, nor compose bcache device and
>>>>>> run it by bash scripts...
>>>>>
>>>>> Do you need the line where this happens? It should be possible to get
>>>>> the line from the IP: [<ffffffffc04ef62e>] output?
>>>>>
>>>> This is very helpful.
>>>
>>> May be i'm too stupid but it does not print anything useful:
>>>
>>> # addr2line -f -e
>>> /usr/lib/debug/lib/modules/4.4.92+534-ph/kernel/drivers/md/bcache/bcache.ko
>>> ffffffffc04ef62e closure_sub
>>> ??
>>> ??:0
>>> bch_inc_gen
>>> ??:?
>>>
>>>> Is it possible to get a kdump crash for the kernel
>>>> oops, that will be much more informative :-)
>>>
>>> no idea how to archieve this for a remote Server.
>>
>> Hi Stefan,
>>
>> In code path of closure_wake_up(), I remember there are two patches in
>> last run,
>> - commit a5f3d8a5eaaf ("bcache: use llist_for_each_entry_safe() in
>> __closure_wake_up()")
>> - commit 09b3efec81de ("bcache: Don't reinvent the wheel but use
>> existing llist API")
>>
>> Can you check whether you have all of these patches ? Or can we try to
>> revoke these two patches and see whether oops still happens.
>
> It seems i'm missing a5f3d8a5eaaf but i have 09b3efec81de.
>
> I missed it because
> git log ..linux-block/for-next -- drivers/md/bcache/
>
> does not show it. It seems linux-block/for-next does not contain it?
> Which branch should i use?
>
> Only those contain the mentioned commit:
> remotes/linux-block/for-linus
> remotes/linux-block/master
> remotes/linux-block/wbt-odirect
>

Hi Stefan,

These 2 patches are in 4.14 mainline kernel already. This is my fault to
make commit 09b3efec81de buggy, and fix it in commit a5f3d8a5eaaf.

Could you please try again with the fixing patch ?

(And I guess maybe other 2 reports may also miss this fix).

Thanks.

Coly Li