Hi, Sasà Vita 

Thanks for reporting!

> -----Original Message-----
> From: linux-btrfs-ow...@vger.kernel.org
> [mailto:linux-btrfs-ow...@vger.kernel.org] On Behalf Of Sasà Vita
> Sent: Wednesday, July 22, 2015 1:52 PM
> To: linux-btrfs@vger.kernel.org
> Subject: stack trace (free_fs_root) with either fallocate +
> mv-across-subvolumes, or mount-wth-compress + dd
> 
> The script below generates a stack trace, and some of the "mv dir/f dir/a"
> commands that it spawns fail with the message: "Device or resource busy".
> 
> The stack trace is not generated on every iteration. The "for" loop ensures 
> that
> it is generated at least once.
> 
> Reproduced on Arch Linux, with various kernels from 3.11.2-1-ARCH up to
> 4.0.4-2-ARCH.
> 
> 
> mkdir dir
> truncate -s 3G loop
> 
> fun1() {
>   mount loop dir
>   btrfs subvolume create dir/a
>   fallocate -l 46M dir/f
>   mv dir/f dir/a
> }
> 
> for i in {1..30} ; do
>   mkfs.btrfs loop
>   fun1
>   umount dir
> done
> 
> 

I tested this script in following platforms,
but can't reproduce this bug:

1: physical machine, RHEL7.1, linux 4.2-rc1
2: physical machine, RHEL7.1, linux 4.0
3: physical machine, RHEL7.1, linux 3.11
4: kvm, RHEL6, linux 4.2-rc2

on both physical and loop device,
and 3 times(90 loops) tests.

Who can test it in other platform?

Thanks
Zhaolei

> [  112.060072] BTRFS: device fsid 88f9e1b0-d018-4f21-9598-22987aa2b893
> devid 1 transid 4 /dev/loop3
> [  112.067593] BTRFS info (device loop3): disk space caching is enabled
> [  112.067597] BTRFS: has skinny extents [  112.067599] BTRFS: flagging fs
> with big metadata feature [  112.068900] BTRFS: creating UUID tree
> [  112.316740] ------------[ cut here ]------------ [  112.316740] WARNING: 
> CPU: 0
> PID: 1094 at fs/btrfs/disk-io.c:3549
> free_fs_root+0xe1/0xf0 [btrfs]()
> [  112.316740] Modules linked in: crc32c_generic btrfs xor raid6_pq
> cfg80211 rfkill ppdev psmouse snd_intel8x0 iosf_mbi joydev mousedev pcspkr
> snd_ac97_codec ac97_bus snd_pcm serio_raw i2c_piix4 i2c_core snd_timer
> snd soundcore parport_pc parport battery ac evdev mac_hid acpi_cpufreq
> processor sch_fq_codel nfs lockd grace sunrpc fscache
> ext4 crc16 mbcache jbd2 dm_snapshot dm_bufio dm_mod squashfs loop isofs
> sr_mod cdrom hid_generic usbhid hid atkbd libps2 ahci libahci ohci_pci 
> ohci_hcd
> ehci_pci ehci_hcd libata scsi_mod usbcore usb_common
> e1000 intel_agp intel_gtt i8042 serio video button [  112.316740] CPU: 0 PID:
> 1094 Comm: umount Not tainted 4.0.4-2-ARCH #1 [  112.316740] Hardware
> name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
> [  112.316740]  0000000000000000 000000001675626b ffff88004925bc88
> ffffffff81574b23
> [  112.316740]  0000000000000000 0000000000000000 ffff88004925bcc8
> ffffffff81074dda [  112.316740]  ffff88004925bcd8 ffff880000082000
> ffff880053082000
> ffff880053082068
> [  112.316740] Call Trace:
> [  112.316740]  [<ffffffff81574b23>] dump_stack+0x4c/0x6e [  112.316740]
> [<ffffffff81074dda>] warn_slowpath_common+0x8a/0xc0 [  112.316740]
> [<ffffffff81074f0a>] warn_slowpath_null+0x1a/0x20 [  112.316740]
> [<ffffffffa04f2bc1>] free_fs_root+0xe1/0xf0 [btrfs] [  112.316740]
> [<ffffffffa04f55bd>]
> btrfs_drop_and_free_fs_root+0x7d/0xc0 [btrfs] [  112.316740]
> [<ffffffffa04f56df>] btrfs_free_fs_roots+0xdf/0x180 [btrfs] [  112.316740]
> [<ffffffffa04f7471>] close_ctree+0x151/0x360 [btrfs] [  112.316740]
> [<ffffffff811f535d>] ? evict_inodes+0x13d/0x160 [  112.316740]
> [<ffffffffa04ca739>] btrfs_put_super+0x19/0x20 [btrfs] [  112.316740]
> [<ffffffff811da836>] generic_shutdown_super+0x76/0x100 [  112.316740]
> [<ffffffff811dab76>] kill_anon_super+0x16/0x30 [  112.316740]
> [<ffffffffa04ca398>] btrfs_kill_super+0x18/0x120 [btrfs] [  112.316740]
> [<ffffffff811daf69>] deactivate_locked_super+0x49/0x80 [  112.316740]
> [<ffffffff811db3dc>] deactivate_super+0x6c/0x80 [  112.316740]
> [<ffffffff811f8df3>] cleanup_mnt+0x43/0xa0 [  112.316740]
> [<ffffffff811f8ea2>] __cleanup_mnt+0x12/0x20 [  112.316740]
> [<ffffffff810917b4>] task_work_run+0xd4/0xf0 [  112.316740]
> [<ffffffff81015d35>] do_notify_resume+0x75/0x80 [  112.316740]
> [<ffffffff8157a6a3>] int_signal+0x12/0x17 [  112.316740] ---[ end trace
> 1cd8909b794df110 ]--- [  112.351293] VFS: Busy inodes after unmount of loop3.
> Self-destruct in 5 seconds.  Have a nice day...
> 
> 
> I tested a variant of the script, where only the fallocate line is changed, 
> and
> replaced with:
> dd if=/dev/zero of=dir/f bs=512 count=1
> I was unable to reproduce the problem, in this case.
> 
> 
> A related issue: in the following script, some of the 'mv dir/a/f dir' 
> commands
> enter the state D and hang, even if no external storage is involved and the
> loop-mounted file is on a tmpfs.
> 
> for i in {1..30} ; do
>   mkfs.btrfs loop
>   fun1
>   umount dir
>   mount loop dir
>   mv dir/a/f dir   # this may hang
>   umount dir
> done
> 
> 
> Furthermore, the following script also generates the same stack trace, as
> above.
> 
> mkdir dir
> truncate -s 3G loop
> 
> fun2() {
>   mount -ocompress=zlib loop dir   # or compress=lzo
>   dd if=/usr/bin/js of=dir/a bs=1024 count=2000 }
> 
> for i in {1..30} ; do
>   mkfs.btrfs loop
>   fun2
>   umount dir
> done
> 
> 
> Hope this helps.
> --
> 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