It's specifically BTRFS related, I was able to reproduce it on a bare
drive (no lvm, no md, no bcache).  It's not bad RAM, I was able to
reproduce it on multiple machines running either 3.17 or late RCs.

I've tested 3.18-rc2 for about 2 hours now, can't get any failures, so
that's good.  If anyone else can reproduce this it'll probably need to
be sent to 3.17-stable.

On Wed, Oct 29, 2014 at 7:24 PM, Alec Blayne <a...@tevsa.net> wrote:
> Really nice to know it's already getting handled :)
>
> I'm already "downgrading" to 3.16.6 now that I know I won't have that
> issue. I was already planning to because of the read-only snapshots issue.
>
> Thank you and good luck debugging!
>
> On 29-10-2014 21:50, Dan Merillat wrote:
>> I'm in the middle of debugging the exact same thing.  3.17.0 -
>> rtorrent dies with SIGBUS.
>>
>> I've done some debugging, the sequence is something like this:
>> open a new file
>> fallocate() to the final size
>> mmap() all (or a portion) of the file
>> write to the region
>> run SHA1 on that mmap'd region to validate the chink
>> crash, eventually.  Generally not at the same point.
>>
>> Reading that file (cat > /dev/null) returns -EIO.
>>
>> Looking up the process maps, the SIGBUS appears to be happening in the
>> middle of a mapped region of a pre-allocated file - I.E. it shouldn't
>> be.  I'm not completely ruling out a rtorrent bug but it appears sane
>> to me.
>>
>> Weirder: "old" files, that have been around a while, work just fine for 
>> seeding.
>> I've re-hashed my entire collection without an error.
>>
>> Seeing this on both inherit-COW and no-inherit-COW files, and the
>> filesystem is not using compression.
>>
>> The interesting part is going back and attempting to read the files
>> later they sometimes don't throw an IO error.
>>
>> Absolutely nothing in dmesg.
>>
>> Working on a testcase that triggers it reliably but no luck so far.  I
>> thought I had bad RAM but two people upgrading to 3.17 and seeing the
>> same bug at around the same time can't be a coincidence.  I rebooted
>> to 3.17 on the 25th, the first new download was on the 28th and that
>> failed.
>>
>> Working on a testcase for it that's more reproducable than "go grab
>> torrent files with rtorrent".
>>
>> On Tue, Oct 28, 2014 at 12:49 PM, Alec Blayne <a...@tevsa.net> wrote:
>>> Hi, it seems that when using rtorrent to download into a btrfs system,
>>> it leads to the creation of files that fail to read properly.
>>> For instance, I get rtorrent to crash, but if I try to rsync the file he
>>> was writting into someplace else, rsync also fails with the message
>>> "can't map file "$file": Input/Output error (5)".
>>> If I give it time, eventually the file gets into a good state and I can
>>> rsync it somewhere else (as long as rtorrent doesn't keep writting into
>>> it). This doesn't happen using ext4 on the same system.
>>>
>>> No btrfs errors, or any other errors, show up in any log. Scrubbing or
>>> balancing don't turn up any issues. I've tried using a subvolume mounted
>>> with nodatacow and/or flushoncommit, which didn't help. I'm not using
>>> quotas and at some point had a single snapshot that I deleted. The
>>> filesystem was originally created recently (on a 3.16.4+ kernel).
>>>
>>> Here's what the array looks like:
>>>
>>> Label: 'data'  uuid: ffe83a3d-f4ba-46b7-8424-4ec3380cb811
>>>         Total devices 4 FS bytes used 3.14TiB
>>>         devid    4 size 2.73TiB used 2.36TiB path /dev/sdd1
>>>         devid    5 size 1.82TiB used 1.45TiB path /dev/sdc1
>>>         devid    6 size 1.82TiB used 1.45TiB path /dev/sdb1
>>>         devid    7 size 1.82TiB used 1.45TiB path /dev/sda1
>>>
>>> Btrfs v3.17
>>>
>>> Data, RAID1: total=3.34TiB, used=3.13TiB
>>> System, RAID1: total=32.00MiB, used=512.00KiB
>>> Metadata, RAID1: total=10.00GiB, used=7.31GiB
>>> GlobalReserve, single: total=512.00MiB, used=0.00B
>>>
>>>
>>> On linux 3.17.1: Linux 3.17.1-gentoo-r1 #3 SMP PREEMPT Tue Oct 28
>>> 02:43:11 WET 2014 x86_64 AMD Athlon(tm) 5350 APU with Radeon(tm) R3
>>> AuthenticAMD GNU/Linux
>>>
>>> I'm utterly puzzled and clueless at how to dig into this issue.
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
>>> the body of a message to majord...@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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to