linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: dont <dontbeeeevil@gmail.com>
To: linux-btrfs@vger.kernel.org
Subject: BUG: scheduling while atomic: mount/1608/0x00000002
Date: Mon, 13 Jun 2011 14:08:21 -0400	[thread overview]
Message-ID: <20110613180821.GA8196@gmail.com> (raw)

Hello all,

Background story to the current problem.
I first started with 3 drives and set up btrfs with builtin raid0.
Initially I started out with 3 drives.
Distro is Gentoo and I was using distcc. Then I started noticing that
gcc would hang during compiling. Eventually I tracked down the problem
to distcc. Disabling distcc would fix gcc getting stuck. Then I began
investigating in the distcc folder what was going on in there. If I
recall correct du would get stuck on distcc folder. Because disabling i=
t
distcc was enough I left it alone and forget.

Until I got a new drive that I wanted to add to the raid0. I am not to
sure which of the two but re-balancing would either get stuck or
segfault. So I thought it had something to do with that damn distcc
folder. Then manually I began deleting one by one folders and files in
the distcc directory. Many times rm, ls and du would get stuck because =
I
didn't know which folder and file were causing it. After many tries and
reboots (due to hanged processes) in the end I removed EVERYTHING in
distcc except for the folder and that single file.

=46rom then on, at around kernel 2.6.38, certain operations resulted in
kernel panics, which in turn required cold power cycle. I guess that
made things worse.

By the way I was using many features of btrfs, subvolumes, some
subvolumes with compression enabled, etc.

Damn single file!

This is my most recent attempts at mounting read only since I read that
in certain cases is possible to mount a btrfs system.

Booting Gentoo in qemu with safe drive options like this for the btrfs =
disks:

-drive file=3D/dev/sdX,cache=3Dnone,if=3Dvirtio

Linux kernel 3.0.0-rc1

Btrfs v0.19-35-g1b444cd-dirty

Steps to reproduce current kernel bug.

1. Loglevel set to 9:

	echo 9 > /proc/sysrq-trigger

2. Load module:
=09
	modprobe -v btrfs
	insmod /lib/modules/3.0.0-rc1/kernel/lib/libcrc32c.ko=20
	insmod /lib/modules/3.0.0-rc1/kernel/lib/lzo/lzo_compress.ko=20
	insmod
	/lib/modules/3.0.0-rc1/kernel/lib/zlib_deflate/zlib_deflate.ko=20
	insmod /lib/modules/3.0.0-rc1/kernel/fs/btrfs/btrfs.ko

3. Scan for drives:

	btrfs device scan
	  252.491295] Btrfs loaded
	  [  268.978445] device fsid 48487393f515c9b8-be3d620d5899c184
	  devid 4 transid 906477 /dev/vdd
	  [  268.981717] device fsid 48487393f515c9b8-be3d620d5899c184
	  devid 3 transid 906477 /dev/vdb
	  [  268.984638] device fsid 48487393f515c9b8-be3d620d5899c184
	  devid 5 transid 906477 /dev/vde
	  [  268.987513] device fsid 48487393f515c9b8-be3d620d5899c184
	  devid 2 transid 906475 /dev/vdc
	  [  320.198357] device fsid 48487393f515c9b8-be3d620d5899c184
	  devid 3 transid 906477 /dev/vdb

4. fstab entry:

	cat /etc/fstab
	/dev/vdb        /mnt/btrfs      btrfs   noauto,ro,atime 0 1

5. Mount read only:

	mount -v -o ro -t btrfs /dev/vdb /mnt/btrfs/
	Segmentation fault

6. dmesg output:

[  236.556931] Loglevel set to 9
[  252.491295] Btrfs loaded
[  268.978445] device fsid 48487393f515c9b8-be3d620d5899c184 devid 4
transid 906477 /dev/vdd
[  268.981717] device fsid 48487393f515c9b8-be3d620d5899c184 devid 3
transid 906477 /dev/vdb
[  268.984638] device fsid 48487393f515c9b8-be3d620d5899c184 devid 5
transid 906477 /dev/vde
[  268.987513] device fsid 48487393f515c9b8-be3d620d5899c184 devid 2
transid 906475 /dev/vdc
[  320.198357] device fsid 48487393f515c9b8-be3d620d5899c184 devid 3
transid 906477 /dev/vdb
[  320.251194] parent transid verify failed on 4517304938496 wanted
906477 found 852489
[  320.252957] BUG: scheduling while atomic: mount/1608/0x00000002
[  320.254318] Modules linked in: btrfs zlib_deflate lzo_compress crc32=
c
libcrc32c usbhid hid uhci_hcd ehci_hcd usbcore
[  320.256779] Pid: 1608, comm: mount Tainted: G        W   3.0.0-rc1 #=
8
[  320.258216] Call Trace:
[  320.258774]  [<ffffffff81031331>] __schedule_bug+0x61/0x70
[  320.259856]  [<ffffffff8149c41e>] schedule+0x85e/0x900
[  320.260973]  [<ffffffff810a8450>] ? __lock_page+0x70/0x70
[  320.262189]  [<ffffffff8149c51b>] io_schedule+0x5b/0x80
[  320.263316]  [<ffffffff810a8459>] sleep_on_page+0x9/0x10
[  320.264469]  [<ffffffff8149cdd7>] __wait_on_bit+0x57/0x80
[  320.265646]  [<ffffffff810a85fe>] wait_on_page_bit+0x6e/0x80
[  320.266880]  [<ffffffff8105cd20>] ?
autoremove_wake_function+0x40/0x40
[  320.268276]  [<ffffffffa00d5d7c>] ? submit_one_bio+0x7c/0xa0 [btrfs]
[  320.269690]  [<ffffffffa00db1a2>]
read_extent_buffer_pages+0x422/0x4d0 [btrfs]
[  320.271339]  [<ffffffffa00af0e0>] ? run_one_async_free+0x10/0x10
[btrfs]
[  320.272859]  [<ffffffffa00b0799>]
btree_read_extent_buffer_pages.clone.65+0x89/0xc0 [btrfs]
[  320.274745]  [<ffffffffa00b1b8c>] read_tree_block+0x3c/0x60 [btrfs]
[  320.276136]  [<ffffffffa00962fb>]
read_block_for_search.clone.37+0x1eb/0x410 [btrfs]
[  320.277842]  [<ffffffffa00e9c55>] ? btrfs_tree_lock+0x65/0xe0 [btrfs=
]
[  320.279282]  [<ffffffffa00995c3>] btrfs_search_slot+0x313/0xa30
[btrfs]
[  320.280737]  [<ffffffff810a85fe>] ? wait_on_page_bit+0x6e/0x80
[  320.282011]  [<ffffffffa00aa84f>] btrfs_find_last_root+0x5f/0x150
[btrfs]
[  320.283551]  [<ffffffffa00b247c>] find_and_setup_root+0x5c/0x120
[btrfs]
[  320.284932]  [<ffffffffa00b4f42>] open_ctree+0x1002/0x17b0 [btrfs]
[  320.286346]  [<ffffffff81272259>] ? vsnprintf+0x1f9/0x5d0
[  320.287613]  [<ffffffff812695ab>] ? ida_get_new_above+0x15b/0x1d0
[  320.288925]  [<ffffffff8114ee92>] ? disk_name+0xb2/0xc0
[  320.290122]  [<ffffffffa008f6cf>] btrfs_mount+0x3ff/0x5b0 [btrfs]
[  320.291487]  [<ffffffff810f5f62>] mount_fs+0x42/0x1b0
[  320.292603]  [<ffffffff8110e9b6>] ? alloc_vfsmnt+0xb6/0x1b0
[  320.293752]  [<ffffffff8110eb40>] vfs_kern_mount+0x50/0xb0
[  320.294875]  [<ffffffff8110fbbf>] do_kern_mount+0x4f/0x100
[  320.296092]  [<ffffffff8111166a>] do_mount+0x4fa/0x7d0
[  320.297212]  [<ffffffff810c0af3>] ? strndup_user+0x53/0x70
[  320.298440]  [<ffffffff81111cf3>] sys_mount+0x93/0xe0
[  320.299587]  [<ffffffff8149f252>] system_call_fastpath+0x16/0x1b
[  320.301943] parent transid verify failed on 4517304938496 wanted
906477 found 852489
[  320.303759] parent transid verify failed on 4517304938496 wanted
906477 found 852489
[  320.305664] ------------[ cut here ]------------
[  320.306540] kernel BUG at fs/btrfs/disk-io.c:1106!
[  320.306540] invalid opcode: 0000 [#1] PREEMPT SMP=20
[  320.306540] CPU 0=20
[  320.306540] Modules linked in: btrfs zlib_deflate lzo_compress crc32=
c
libcrc32c usbhid hid uhci_hcd ehci_hcd usbcore
[  320.306540]=20
[  320.306540] Pid: 1608, comm: mount Tainted: G        W   3.0.0-rc1 #=
8
Bochs Bochs
[  320.306540] RIP: 0010:[<ffffffffa00b252f>]  [<ffffffffa00b252f>]
find_and_setup_root+0x10f/0x120 [btrfs]
[  320.306540] RSP: 0018:ffff88003a0c5b78  EFLAGS: 00010282
[  320.306540] RAX: 00000000fffffffe RBX: ffff88003a29e000 RCX:
0000000000000100
[  320.306540] RDX: 00000000fffffffb RSI: 0000000000018b90 RDI:
ffffea0000ccd650
[  320.306540] RBP: ffff88003a0c5ba8 R08: ffffffffa00925d5 R09:
0000000000000000
[  320.306540] R10: 0000000000000000 R11: 0000000000000000 R12:
ffff88003a29c800
[  320.306540] R13: 0000000000000002 R14: ffff88003a2d0000 R15:
ffff880039e17000
[  320.306540] FS:  00007f3b19270740(0000) GS:ffff88003fc00000(0000)
knlGS:0000000000000000
[  320.306540] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[  320.306540] CR2: 00000000014a1018 CR3: 000000003a478000 CR4:
00000000000006b0
[  320.306540] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
0000000000000000
[  320.306540] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7:
0000000000000400
[  320.306540] Process mount (pid: 1608, threadinfo ffff88003a0c4000,
task ffff88003a397680)
[  320.306540] Stack:
[  320.306540]  0000000000000002 ffff880039e17000 ffff88003a0c5ba8
ffff88003a410000
[  320.306540]  ffff88003a29e000 ffff880039e17800 ffff88003a0c5cd8
ffffffffa00b4f42
[  320.306540]  0000000000000003 ffffffff81272259 ffff880000000000
0000100000000000
[  320.306540] Call Trace:
[  320.306540]  [<ffffffffa00b4f42>] open_ctree+0x1002/0x17b0 [btrfs]
[  320.306540]  [<ffffffff81272259>] ? vsnprintf+0x1f9/0x5d0
[  320.306540]  [<ffffffff812695ab>] ? ida_get_new_above+0x15b/0x1d0
[  320.306540]  [<ffffffff8114ee92>] ? disk_name+0xb2/0xc0
[  320.306540]  [<ffffffffa008f6cf>] btrfs_mount+0x3ff/0x5b0 [btrfs]
[  320.306540]  [<ffffffff810f5f62>] mount_fs+0x42/0x1b0
[  320.306540]  [<ffffffff8110e9b6>] ? alloc_vfsmnt+0xb6/0x1b0
[  320.306540]  [<ffffffff8110eb40>] vfs_kern_mount+0x50/0xb0
[  320.306540]  [<ffffffff8110fbbf>] do_kern_mount+0x4f/0x100
[  320.306540]  [<ffffffff8111166a>] do_mount+0x4fa/0x7d0
[  320.306540]  [<ffffffff810c0af3>] ? strndup_user+0x53/0x70
[  320.306540]  [<ffffffff81111cf3>] sys_mount+0x93/0xe0
[  320.306540]  [<ffffffff8149f252>] system_call_fastpath+0x16/0x1b
[  320.306540] Code: 00 00 00 00 41 8b 94 24 00 03 00 00 eb a7 66 0f 1f
44 00 00 49 8b 3c 24 e8 7f 82 02 00 b8 fb ff ff ff e9 5d ff ff ff 31 ff
eb ed <0f> 0b 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5=20
[  320.306540] RIP  [<ffffffffa00b252f>] find_and_setup_root+0x10f/0x12=
0
[btrfs]
[  320.306540]  RSP <ffff88003a0c5b78>
[  320.364923] ---[ end trace 508a31f69047c113 ]---
[  907.168103] flush-254:0 used greatest stack depth: 2888 bytes left

7. Second attempt results in mount getting stuck:

	mount -v -o ro -t btrfs /dev/vdb /mnt/btrfs/

8. dmesg output for the above command is just one line:

	[17645.438073] device fsid 48487393f515c9b8-be3d620d5899c184
	devid 3 transid 906477 /dev/vdb

9. Output of ps:
=09
	ps aux | grep mount
	root      1656  0.0  0.0   8248   628 pts/1    D+   13:59   0:00
	mount -v -o ro -t btrfs /dev/vdb /mnt/btrfs/

10. proc info of the stuck mount process:

	cat /proc/1656/stack

	[<ffffffff81273c43>] call_rwsem_down_write_failed+0x13/0x20
	[<ffffffff810f5330>] sget+0x2e0/0x430
	[<ffffffffa008f4cd>] btrfs_mount+0x1fd/0x5b0 [btrfs]
	[<ffffffff810f5f62>] mount_fs+0x42/0x1b0
	[<ffffffff8110eb40>] vfs_kern_mount+0x50/0xb0
	[<ffffffff8110fbbf>] do_kern_mount+0x4f/0x100
	[<ffffffff8111166a>] do_mount+0x4fa/0x7d0
	[<ffffffff81111cf3>] sys_mount+0x93/0xe0
	[<ffffffff8149f252>] system_call_fastpath+0x16/0x1b
	[<ffffffffffffffff>] 0xffffffffffffffff

The damn SINGLE file!!

=E2=98=B9

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

             reply	other threads:[~2011-06-13 18:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-13 18:08 dont [this message]
2011-06-13 23:21 ` BUG: scheduling while atomic: mount/1608/0x00000002 David Sterba
2011-06-14  0:52   ` David Sterba

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110613180821.GA8196@gmail.com \
    --to=dontbeeeevil@gmail.com \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).