Re: kernel BUG at fs/btrfs/file.c:528 on Linux 2.6.31.1

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

 



On Wed, Oct 07, 2009 at 11:34:54AM +0100, Stefan Hajnoczi wrote:
> I am testing btrfs on Linux 2.6.31.1 and am repeatedly hitting the
> following issue in the btrfs-endio-wri thread:
> 
> ------------[ cut here ]------------
> kernel BUG at fs/btrfs/file.c:528!
> invalid opcode: 0000 [#1] PREEMPT SMP
> last sysfs file: /sys/block/dm-0/range
> Pid: 10093, comm: btrfs-endio-wri Not tainted 2.6.31.1 #1 OptiPlex 755
> RIP: 0010:[<ffffffffa03552d5>]  [<ffffffffa03552d5>]
> btrfs_drop_extents+0x6d5/0x907 [btrfs]
> RSP: 0018:ffff88006cf6dc10  EFLAGS: 00010282
> RAX: 00000000ffffffef RBX: 0000000223338fff RCX: 00000000000006d5
> RDX: 0000000000000001 RSI: 0000000000000000 RDI: 0000000100000001
> RBP: 0000000000000000 R08: ffff880069c2ab50 R09: ffff880069c2ab50
> R10: 0000000000000004 R11: 0000000000000021 R12: ffff88003d5d6490
> R13: ffff880069c2ab50 R14: 000000013231c000 R15: ffff880020e6bc18
> FS:  0000000000000000(0000) GS:ffff880001ba6000(0000) knlGS:0000000000000000
> CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> CR2: 00000000009f6c60 CR3: 000000006b977000 CR4: 00000000000026f0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000ffff4ff0 DR7: 0000000000000400
> Process btrfs-endio-wri (pid: 10093, threadinfo ffff88006cf6c000, task
> ffff88006cd267b0)
> Stack:
>  0000000000001d8d 00000001264ef000 fffffffffffffff6 0000000132320000
> <0> 0000000132320000 000000013231c000 ffff880020e6bd98 ffff88006cdae000
> <0> ffff8800454ff8e0 0101ffff00000003 0000000223339000 0000000223339000
> Call Trace:
>  [<ffffffffa034c254>] ? insert_reserved_file_extent+0xa4/0x24c [btrfs]
>  [<ffffffffa03620a4>] ? lock_extent+0x38/0x80 [btrfs]
>  [<ffffffffa03505bf>] ? btrfs_finish_ordered_io+0x184/0x23d [btrfs]
>  [<ffffffffa036422c>] ? end_bio_extent_writepage+0x9b/0x186 [btrfs]
>  [<ffffffffa036b6bb>] ? worker_loop+0x5f/0x1ec [btrfs]
>  [<ffffffffa036b65c>] ? worker_loop+0x0/0x1ec [btrfs]
>  [<ffffffff81056d4a>] ? kthread+0x8b/0x95
>  [<ffffffff8100cb5a>] ? child_rip+0xa/0x20
>  [<ffffffff81056cbf>] ? kthread+0x0/0x95
>  [<ffffffff8100cb50>] ? child_rip+0x0/0x20
> Code: 00 00 00 35 00 00 00 41 b9 01 00 00 00 4c 8d 84 24 fc 00 00 00
> 4c 89 ea 48 8b 74 24 38 48 8b 7c 24 40 e8 a5 4c fe ff 85 c0 74 04 <0f>
> 0b eb fe 49 8b 6d 00 49 63 75 40 48 89 ef 48 6b f6 19 48 83
> RIP  [<ffffffffa03552d5>] btrfs_drop_extents+0x6d5/0x907 [btrfs]
>  RSP <ffff88006cf6dc10>
> ---[ end trace 5dd7bea4ce87888f ]---
> 
> Specifics of my setup:
> 1. The filesystem is used exclusively over NFS.
> 2. The filesystem contains only a few files, most are large (~9 GB).
> 3. I use bcp(1) to make copy-on-write copies of the large files.
> 4. The filesystem is 40 GB and currently 15 GB (37%) are in use.
> 5. The filesystem is on an LVM volume.
> 
> Any idea what is going on here and whether this is already fixed?

This oops means that we're trying to insert an extent that already
exists.  I think it is related to the bug in the file clone ioctl that
Sage recently fixed.  The fix is in the master branch of the
btrfs-unstable tree.

So, I'd say step one is to make a backup of this data.

Are you able to figure out which of the files is being written at the
time of the oops?  If not we can easily add a message to help nail it
down.

Either way, I'd copy the file that is triggering the problem to a new
file and delete the old one.

-chris

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux