Re: cephfs in kernel 4.9: NULL pointer deref

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Dec 12, 2017 at 2:32 AM, Gregory Farnum <gfarnum@xxxxxxxxxx> wrote:
> On Mon, Dec 11, 2017 at 4:48 AM, Yan, Zheng <ukernel@xxxxxxxxx> wrote:
>> On Mon, Dec 11, 2017 at 8:13 PM, Amon Ott <a.ott@xxxxxxxxxxxx> wrote:
>>> Hello Ceph folks,
>>>
>>> when running latest Stable 64 Bit Google Chrome under Linux with home
>>> dirs on cephfs, I get the attached kernel trace and cephfs access hangs
>>> afterwards. Umounting cephfs no longer works, only a hard system reset
>>> helps. Since it only happens on cephfs, I hope to get some help here.
>>>
>>> Kernel versions tested are 4.9.67 and 4.9.68, each with RSBAC patched
>>> in. However, RSBAC does not touch these funktions. Since 4.9.68 just had
>>> a fix related to page_mkwrite(), it might be related. The trace can be
>>> reproduced with every start of Chrome, but we have not seen anything
>>> similar with other applications, e.g. Firefox. Ceph backend lives on xfs
>>> or btrfs on the same system, crash happens with both.
>>>
>>> Thanks for all your good work,
>>
>> it's likely caused by following code in ceph_read_iter()
>>
>> current->journal_info = filp;
>> ret = generic_file_read_iter(iocb, to);
>> current->journal_info = NULL;
>>
>> ceph set current->journal_info, which confuses ext4. I will try
>> writing a fix tomorrow.
>
> I don't understand how Ceph code changing a ceph inode can confuse
> ext4. Can you provide a little more background here?
> -Greg
>

current is a macro that return pointer of task_struct. The code set
current->journal_info, which tells ceph_readpages() that caller has
already gotten Fcr caps. EXT4  uses current->journal_info to store its
journal handle. In this case,  the buffer for read(2) is memory mapped
to a ext4 file.  Copying data to read buffer triggers page fault, page
fault handler calls ext4_page_mkwrite().



>>
>> Regards
>> Yan, Zheng
>>
>>>
>>> Amon Ott
>>> --
>>> Dr. Amon Ott
>>> m-privacy GmbH           Tel: +49 30 24342334
>>> Werner-Voß-Damm 62       Fax: +49 30 99296856
>>> 12101 Berlin             http://www.m-privacy.de
>>>
>>> Amtsgericht Charlottenburg, HRB 84946
>>>
>>> Geschäftsführer:
>>>  Dipl.-Kfm. Holger Maczkowsky,
>>>  Roman Maczkowsky
>>>
>>> GnuPG-Key-ID: 0x2DD3A649
>>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux