Daniel J Blueman
2012-Mar-25 13:40 UTC
attempt to access beyond end of device and livelock
Hi Dongyang, Yan, When testing BTRFS with RAID 0 metadata on linux-3.3, we see discard ranges exceeding the end of the block device [1], potentially causing dataloss; when this occurs, filesystem writeback becomes catatonic due to continual resubmission. The reproducer is quite simple [2]. Hope this proves useful... Thanks, Daniel --- [1] attempt to access beyond end of device ram0: rw=129, want=8452072, limit=4096000 ... --- [2] modprobe brd rd_size=2048000 (or boot with ramdisk_size=2048000) mkfs.btrfs -m raid0 /dev/ram0 /dev/ram1 mount /dev/ram0 /mnt -o discard fio testcase umount /mnt --- [3] testcase [global] directory=/mnt rw=randread size=256m ioengine=libaio iodepth=4 invalidate=1 direct=1 [bgwriter] rw=randwrite iodepth=32 [queryA] iodepth=1 ioengine=mmap thinktime=3 [queryB] iodepth=1 ioengine=mmap thinktime=1 [bgupdater] rw=randrw iodepth=16 thinktime=1 size=32m -- Daniel J Blueman -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Daniel J Blueman
2012-Apr-06 11:36 UTC
[3.4-rc1] attempt to access beyond end of device and livelock
Hi Josef, Chris, When testing BTRFS with RAID 0 metadata on linux-3.4-rc1, we see discard ranges exceeding the end of the block device [1], potentially causing dataloss; when this occurs, filesystem writeback becomes catatonic due to continual resubmission. Simply mounting with discard a raid0 metadata filesystem and copying some data in [2] provokes the issue. Thanks, Daniel --- [1] attempt to access beyond end of device ram0: rw=129, want=8452072, limit=4096000 ... --- [2] modprobe brd rd_size=2048000 (or boot with ramdisk_size=2048000) mkfs.btrfs -m raid0 /dev/ram0 /dev/ram1 mount /dev/ram0 /mnt -o discard cd /mnt && tar -xvzf linux.tar.gz <access beyond end of device and livelock> -- Daniel J Blueman
Liu Bo
2012-Apr-08 08:49 UTC
Re: [3.4-rc1] attempt to access beyond end of device and livelock
On 04/06/2012 07:36 PM, Daniel J Blueman wrote:> Hi Josef, Chris, > > When testing BTRFS with RAID 0 metadata on linux-3.4-rc1, we see > discard ranges exceeding the end of the block device [1], potentially > causing dataloss; when this occurs, filesystem writeback becomes > catatonic due to continual resubmission. > > Simply mounting with discard a raid0 metadata filesystem and copying > some data in [2] provokes the issue. > > Thanks, > Daniel > > --- [1] > > attempt to access beyond end of device > ram0: rw=129, want=8452072, limit=4096000 > ... > > --- [2] > > modprobe brd rd_size=2048000 (or boot with ramdisk_size=2048000) > mkfs.btrfs -m raid0 /dev/ram0 /dev/ram1 > mount /dev/ram0 /mnt -o discard > cd /mnt && tar -xvzf linux.tar.gz > <access beyond end of device and livelock>Thanks for the report, this bug shows we''ve miscalculated the length of discard extents. I''ll send a patch for this soon. thanks, -- liubo -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Daniel J Blueman
2012-Apr-09 14:44 UTC
Re: [3.4-rc1] attempt to access beyond end of device and livelock
On 8 April 2012 16:49, Liu Bo <liubo2009@cn.fujitsu.com> wrote:> On 04/06/2012 07:36 PM, Daniel J Blueman wrote: >> Hi Josef, Chris, >> >> When testing BTRFS with RAID 0 metadata on linux-3.4-rc1, we see >> discard ranges exceeding the end of the block device [1], potentially >> causing dataloss; when this occurs, filesystem writeback becomes >> catatonic due to continual resubmission.[]> Thanks for the report, this bug shows we''ve miscalculated the length of discard extents. > > I''ll send a patch for this soon.The patch test out well here on 3.4-rc2. Thanks Bo! Daniel -- Daniel J Blueman