From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Sandeen Subject: Re: 2.6.30-rc4: xfs_fsr hangs Date: Thu, 07 May 2009 18:33:16 -0500 Message-ID: <4A036FBC.9020201@sandeen.net> References: Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: Sender: kernel-testers-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Content-Type: text/plain; charset="us-ascii" To: Alexander Beregalov Cc: Linux Kernel Mailing List , Kernel Testers List , xfs-VZNHf3L845pBDgjK7y7TUQ@public.gmane.org Alexander Beregalov wrote: > # xfs_db -r /dev/sdc1 > xfs_db> frag > actual 23805, ideal 22890, fragmentation factor 3.84% > # xfs_fsr -v /dev/sdc1 > /mnt/c start inode=0 > ino=158 > extents before:3 after:1 DONE ino=158 > > then it hangs Ok, yep with the testcase I proposed I see this on the fedora 2.6.30-rc4.git3 x86 kernel as well: # for I in `seq 10 -1 0`; do dd if=/dev/zero of=fragfile bs=4k count=1 seek=$I conv=notrunc oflag=sync done # xfs_fsr fragfile ===================================== [ BUG: bad unlock balance detected! ] ------------------------------------- xfs_fsr/1459 is trying to release lock (&(&ip->i_iolock)->mr_lock) at: [] xfs_iunlock+0x2c/0x92 [xfs] but there are no more locks to release! other info that might help us debug this: no locks held by xfs_fsr/1459. stack backtrace: Pid: 1459, comm: xfs_fsr Not tainted 2.6.30-0.78.rc4.git3.fc12.i586 #1 Call Trace: [] ? printk+0x22/0x3c [] print_unlock_inbalance_bug+0xb3/0xd1 [] ? xfs_iunlock+0x2c/0x92 [xfs] [] lock_release+0xd0/0x1a6 [] up_write+0x29/0x50 [] xfs_iunlock+0x2c/0x92 [xfs] [] xfs_swap_extents+0x427/0x4cc [xfs] [] xfs_swapext+0xda/0x11c [xfs] [] ? kobject_uevent_init+0x30/0x6d [] xfs_file_ioctl+0x4ac/0x67e [xfs] [] ? avc_has_perm_noaudit+0x3b1/0x3cc [] ? xfs_file_ioctl+0x0/0x67e [xfs] [] vfs_ioctl+0x29/0x91 [] do_vfs_ioctl+0x496/0x4e3 [] ? kobject_uevent_init+0x30/0x6d [] ? selinux_file_ioctl+0x4d/0x62 [] ? kobject_uevent_init+0x30/0x6d [] sys_ioctl+0x55/0x86 [] ? syscall_trace_enter+0xea/0x10f [] syscall_call+0x7/0xb [] ? kobject_uevent_init+0x30/0x6d there are 2 subsequent unlocks for the same inode: 1: xfs_iunlock: ip ca2304c0 ino 132 flags 0x5 Pid: 3648, comm: xfs_fsr Not tainted 2.6.30-0.78.rc4.git3.fc12.i586 #1 Call Trace: [] xfs_iunlock+0x38/0xb9 [xfs] [] xfs_iput+0x20/0x40 [xfs] [] xfs_inode_item_unlock+0x82/0x97 [xfs] [] xfs_trans_unlock_chunk+0x96/0xe1 [xfs] [] xfs_trans_unlock_items+0x4f/0xd4 [xfs] [] _xfs_trans_commit+0x275/0x307 [xfs] [] xfs_swap_extents+0x403/0x4cc [xfs] [] xfs_swapext+0xda/0x11c [xfs] [] xfs_file_ioctl+0x4ac/0x67e [xfs] [] vfs_ioctl+0x29/0x91 [] do_vfs_ioctl+0x496/0x4e3 [] sys_ioctl+0x55/0x86 [] syscall_call+0x7/0xb 2: xfs_iunlock: ip ca230980 ino 131 flags 0x5 Pid: 3648, comm: xfs_fsr Not tainted 2.6.30-0.78.rc4.git3.fc12.i586 #1 Call Trace: [] xfs_iunlock+0x38/0xb9 [xfs] [] xfs_swap_extents+0x427/0x4cc [xfs] [] xfs_swapext+0xda/0x11c [xfs] [] xfs_file_ioctl+0x4ac/0x67e [xfs] [] vfs_ioctl+0x29/0x91 [] do_vfs_ioctl+0x496/0x4e3 [] sys_ioctl+0x55/0x86 [] syscall_call+0x7/0xb Looking into it ... not sure offhand what caused this. -Eric