Thread (11 messages) 11 messages, 3 authors, 2012-04-10

Re: kernel BUG at fs/btrfs/volumes.c:2733

From: Ilya Dryomov <idryomov@gmail.com>
Date: 2012-03-29 15:41:54

On Thu, Mar 29, 2012 at 05:14:22PM +0200, Sander wrote:
Ilya Dryomov wrote (ao):
quoted
On Thu, Mar 29, 2012 at 12:52:35PM +0200, Sander wrote:
quoted
After a reboot, I tried again, with the same result:

[   81.048767] ------------[ cut here ]------------
[   81.053619] kernel BUG at fs/btrfs/volumes.c:2733!
[   81.053619] Internal error: Oops - BUG: 0 [#1] SMP
[   81.059295] Modules linked in:
[   81.059295] CPU: 1    Not tainted  (3.3.0 #8)
[   81.071411] PC is at btrfs_balance+0x312/0xb04
[   81.074890] LR is at btrfs_run_delayed_iputs+0x2d/0xac
quoted
So you have balance item on disk, but the kernel doesn't seem to know
about it in advance, which is odd and so when you try to run balance it
panics on one of the safety checks.
quoted
The system is a pandaboard running a plain Linus kernel 3.3.0 with a
btrfs filesystem, over two Intel 320 600GB ssd's, connected via usb (on
an usb hub), on top of md_crypt. Mount options:
"subvol=rootvolume,space_cache,inode_cache,compress=lzo,ssd"

Before the balance, I deleted about 2500 snapshots and waited for the
btrfs kernel threads to calm down. Then I initiated a btrfs filesystem
scrub. Unfortunately during the scrub, the filesystem balance started.
Might be related.
That's indeed pretty cool, I wonder how that could happen.
I create 5 snapshots of 5 different subvolumes every 5 minutes, and the
system is low on memory:

             total       used       free     shared    buffers     cached
Mem:           745        712         33          0          0        480
-/+ buffers/cache:        231        514
Swap:            0          0          0

There is ample space on the fileystem:
panda:~# df -h /
Filesystem                                              Size  Used Avail Use% Mounted on
/dev/mapper/ata-INTEL_SSDSA2CW600G3_CVPR112405AJ600FGN  1.1T   17G  1.1T   2% /

panda:~# btrfs filesystem df /
Data, RAID0: total=24.00GB, used=15.69GB
System, RAID1: total=64.00MB, used=12.00KB
System: total=4.00MB, used=0.00
Metadata, RAID1: total=23.00GB, used=231.26MB

Do you need more information?
No, that's enough for now.
quoted
I'm definitely intrested in reproducing it. Could you please umount this
filesystem, capture the output of 'btrfs-debug-tree -d <dev>' and post it
somewhere ?
Will do. It is the / filesystem, so I'll need to reboot.
I need this to confirm that balance item is on disk.
quoted
After that mount it back and see if there is "btrfs: continuing
balance" line in dmesg (and if btrfs-balance kthread shows up)?
There was none after the first reboot, but I'll pay extra attention to
that after the next reboot.
quoted
If so, just let it run, it should finish the balance and remove
on-disk item. (You can query the status of running balance with 'btrfs
balance status <mnt>')
Do I need newer tools for that? This is Debian Sid (unstable):
Yeah, you do.  That command is in master now, but it's not really
needed.  If btrfs-balance shows up, just wait for it to finish, it
should get rid of the balance item.  If it doesn't show up but the item
is there we will have to dig deeper.

Thanks,

		Ilya
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help