Re: Crash when trying to mount ext4

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

 



On Thu, Oct 27, 2011 at 1:51 PM, Damien Churchill <damoxc@xxxxxxxxx> wrote:
> On 27 October 2011 17:25, Yehuda Sadeh Weinraub <yehudasa@xxxxxxxxx> wrote:
>> On Thu, Oct 27, 2011 at 5:59 AM, Damien Churchill <damoxc@xxxxxxxxx> wrote:
>>> Hi,
>>>
>>> I've been testing bcache with the latest sources from the git tree.
>>> I've been attempting to use a rbd (RADOS block device) as the backing
>>> device. I can format the bcache0 device with mkfs.ext4, however when I
>>> mount it, there is a kernel bug when it attempts to initialize the
>>> filesystem.
>>>
>>> I'm unsure if this is a bug in rbd or bcache however, I'm including
>>> the stack trace outputted by the kernel. The kernel has been based off
>>> the current Ubuntu Precise kernel (3.1.0) patched with the changes
>>> from the bcache git repository as well as the changes from the ceph
>>> repository in for-next (the same thing happened without the changes
>>> from the ceph repository). bcache does function as expected when using
>>> a raw disk drive.
>>>
>>
>> Can you push a tree somewhere that has the exact kernel that you're
>> using, patched with the specific bcache version? It'll make it easier
>> for us to look at the issue.
>>
>> Thanks,
>> Yehuda
>>
>
> Certainly, I've pushed it up to github,
> https://github.com/damoxc/linux.git. It's in the branch "testing".
>

I was able to reproduce the issue. It seems that bcache creates bios
without invoking the merge_bvec callback (which we implement), so we
end up with a request that holds pages that exceed the rbd block
boundaries. The call to bio_split then crashes as it shouldn't have
more than a single page trailing outside. So it's either a problem in
bcache that doesn't call that callback, or an issue with rbd code that
assumes that it'll always be called. A relatively quick workaround for
rbd would be to create a special bio_split function that would do the
required splitting for this case, but I'm not sure whether that would
be the proper solution. If that's a bcache oversight and not an
incorrect assumption I'd rather leave it for bcache.

Yehuda
--
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