lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 22 Jun 2007 22:40:14 +0200
From:	"Oliver Pinter" <oliver.pntr@...il.com>
To:	linux-kernel <linux-kernel@...r.kernel.org>, dgc@....com
Subject: [REGRESSION 2.6-git] possible circular locking dependency detected with XFS

Hi all!

I found this info:

=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.22-rc5-wifi1 #2
-------------------------------------------------------
mount/2209 is trying to acquire lock:
 (&(&ip->i_lock)->mr_lock/1){--..}, at: [<c022b62d>] xfs_ilock+0x66/0x90

but task is already holding lock:
 (&(&ip->i_lock)->mr_lock){----}, at: [<c022b62d>] xfs_ilock+0x66/0x90

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (&(&ip->i_lock)->mr_lock){----}:
       [<c013c078>] __lock_acquire+0xe6d/0x1016
       [<c022b62d>] xfs_ilock+0x66/0x90
       [<c013acf7>] trace_hardirqs_on+0xb6/0x156
       [<c013c289>] lock_acquire+0x68/0x82
       [<c022b62d>] xfs_ilock+0x66/0x90
       [<c0133087>] down_write_nested+0x3b/0x55
       [<c022b62d>] xfs_ilock+0x66/0x90
       [<c022b62d>] xfs_ilock+0x66/0x90
       [<c022c0aa>] xfs_iget_core+0x401/0x6d9
       [<c022c456>] xfs_iget+0xd4/0x15e
       [<c024598e>] xfs_trans_iget+0xf5/0x167
       [<c023018f>] xfs_ialloc+0xb5/0x53f
       [<c0246425>] xfs_dir_ialloc+0x79/0x2c4
       [<c0133087>] down_write_nested+0x3b/0x55
       [<c024c91e>] xfs_create+0x376/0x690
       [<c0257796>] xfs_vn_mknod+0x210/0x339
       [<c017694f>] vfs_create+0xbd/0x140
       [<c0179b2a>] open_namei+0x640/0x693
       [<c016e2c4>] do_filp_open+0x25/0x40
       [<c052e4f7>] _spin_unlock+0x14/0x1c
       [<c016e0a4>] get_unused_fd+0xaa/0xbb
       [<c016e31d>] do_sys_open+0x3e/0xc2
       [<c016e3dc>] sys_open+0x1c/0x20
       [<c01026ce>] sysenter_past_esp+0x5f/0x99
       [<ffffffff>] 0xffffffff

-> #0 (&(&ip->i_lock)->mr_lock/1){--..}:
       [<c013963f>] print_circular_bug_entry+0x40/0x47
       [<c013beca>] __lock_acquire+0xcbf/0x1016
       [<c0238745>] xlog_grant_log_space+0x21e/0x243
       [<c013c289>] lock_acquire+0x68/0x82
       [<c022b62d>] xfs_ilock+0x66/0x90
       [<c0133087>] down_write_nested+0x3b/0x55
       [<c022b62d>] xfs_ilock+0x66/0x90
       [<c022b62d>] xfs_ilock+0x66/0x90
       [<c0249b6d>] xfs_lock_inodes+0x15a/0x178
       [<c024cda4>] xfs_link+0x16c/0x455
       [<c02572b9>] xfs_vn_link+0x37/0x80
       [<c013ab7d>] mark_held_locks+0x5c/0x6f
       [<c052d178>] __mutex_lock_slowpath+0x152/0x293
       [<c013acf7>] trace_hardirqs_on+0xb6/0x156
       [<c01763fb>] vfs_link+0xd2/0x1a2
       [<c052d16b>] __mutex_lock_slowpath+0x145/0x293
       [<c01763fb>] vfs_link+0xd2/0x1a2
       [<c0176444>] vfs_link+0x11b/0x1a2
       [<c017931a>] sys_linkat+0xe2/0x100
       [<c0170684>] __fput+0x12c/0x17b
       [<c0170684>] __fput+0x12c/0x17b
       [<c0179367>] sys_link+0x2f/0x33
       [<c01026ce>] sysenter_past_esp+0x5f/0x99
       [<ffffffff>] 0xffffffff

other info that might help us debug this:

3 locks held by mount/2209:
 #0:  (&inode->i_mutex/1){--..}, at: [<c0177215>] lookup_create+0x1a/0x73
 #1:  (&inode->i_mutex){--..}, at: [<c01763fb>] vfs_link+0xd2/0x1a2
 #2:  (&(&ip->i_lock)->mr_lock){----}, at: [<c022b62d>] xfs_ilock+0x66/0x90

stack backtrace:
 [<c013a0d5>] print_circular_bug_tail+0x68/0x70
 [<c013beca>] __lock_acquire+0xcbf/0x1016
 [<c0238745>] xlog_grant_log_space+0x21e/0x243
 [<c013c289>] lock_acquire+0x68/0x82
 [<c022b62d>] xfs_ilock+0x66/0x90
 [<c0133087>] down_write_nested+0x3b/0x55
 [<c022b62d>] xfs_ilock+0x66/0x90
 [<c022b62d>] xfs_ilock+0x66/0x90
 [<c0249b6d>] xfs_lock_inodes+0x15a/0x178
 [<c024cda4>] xfs_link+0x16c/0x455
 [<c02572b9>] xfs_vn_link+0x37/0x80
 [<c013ab7d>] mark_held_locks+0x5c/0x6f
 [<c052d178>] __mutex_lock_slowpath+0x152/0x293
 [<c013acf7>] trace_hardirqs_on+0xb6/0x156
 [<c01763fb>] vfs_link+0xd2/0x1a2
 [<c052d16b>] __mutex_lock_slowpath+0x145/0x293
 [<c01763fb>] vfs_link+0xd2/0x1a2
 [<c0176444>] vfs_link+0x11b/0x1a2
 [<c017931a>] sys_linkat+0xe2/0x100
 [<c0170684>] __fput+0x12c/0x17b
 [<c0170684>] __fput+0x12c/0x17b
 [<c0179367>] sys_link+0x2f/0x33
 [<c01026ce>] sysenter_past_esp+0x5f/0x99
 =======================

when enable the CONFIG_PROVE_LOCKING option.

Thanks
Oliver

Download attachment "dmesg" of type "application/octet-stream" (28344 bytes)

Download attachment "config" of type "application/octet-stream" (44664 bytes)

Download attachment "ver_linux" of type "application/octet-stream" (686 bytes)

Download attachment "mount" of type "application/octet-stream" (560 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ