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-prev] [day] [month] [year] [list]
Message-ID: <20070607111306.GF31483@atrey.karlin.mff.cuni.cz>
Date:	Thu, 7 Jun 2007 13:13:06 +0200
From:	Jan Kara <jack@...e.cz>
To:	"alpha @ steudten Engineering" <NWQ3MzhlY2QwZDAzODVhN@...udten.com>
Cc:	LKML <linux-kernel@...r.kernel.org>
Subject: Re: Kernel 2.6.20: possible circular locking dependency detected

  Thanks for report. It's actually a false warning and should be fixed
in 2.6.22 or so...

									Honza

> Linux version 2.6.20-1.2948.self (rpmbuild@...lin.linux.alpha) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-51)) #1 SMP
> Mon May 7 11:07:53 CEST 2007
> 
> =======================================================
> [ INFO: possible circular locking dependency detected ]
> 2.6.20-1.2948.self #1
> -------------------------------------------------------
> squid/4111 is trying to acquire lock:
>  (tty_mutex){--..}, at: [<c019fb54>] print_warning+0x8b/0x12e
> 
> but task is already holding lock:
>  (&s->s_dquot.dqptr_sem){----}, at: [<c01a0802>] dquot_alloc_inode+0x34/0x10a
> 
> which lock already depends on the new lock.
> 
> 
> the existing dependency chain (in reverse order) is:
> 
> -> #4 (&s->s_dquot.dqptr_sem){----}:
>        [<c013a89d>] __lock_acquire+0x950/0xa70
>        [<c01a06bb>] dquot_alloc_space+0x42/0x155
>        [<c013acf8>] lock_acquire+0x67/0x89
>        [<c01a06bb>] dquot_alloc_space+0x42/0x155
>        [<c013683a>] down_read+0x38/0x49
>        [<c01a06bb>] dquot_alloc_space+0x42/0x155
>        [<c01a06bb>] dquot_alloc_space+0x42/0x155
>        [<c01ae738>] ext3_new_blocks+0x83/0x5c4
>        [<c019dd86>] mb_cache_entry_find_first+0x29/0x5b
>        [<c01aec99>] ext3_new_block+0x20/0x25
>        [<c01bcec2>] ext3_xattr_block_set+0x57b/0x7ce
>        [<c01b0e41>] __ext3_get_inode_loc+0x10f/0x2fb
>        [<c01bf52b>] journal_get_write_access+0x21/0x26
>        [<c01bd494>] ext3_xattr_set_handle+0x37f/0x47f
>        [<c01be8ac>] ext3_init_security+0x70/0x91
>        [<c01b0423>] ext3_new_inode+0x877/0x98b
>        [<c01bf8c5>] start_this_handle+0x256/0x341
>        [<c034a84b>] _spin_unlock+0x14/0x1c
>        [<c01bf994>] start_this_handle+0x325/0x341
>        [<c016ff4c>] cache_alloc_debugcheck_after+0xc4/0x136
>        [<c0139b22>] trace_hardirqs_on+0x141/0x164
>        [<c01bf042>] journal_stop+0x1ce/0x1da
>        [<c01bfa5f>] journal_start+0xaf/0xdd
>        [<c019ef57>] dquot_initialize+0x21/0x87
>        [<c01b62cd>] ext3_create+0x7b/0xe2
>        [<c017b5f3>] vfs_create+0xca/0x134
>        [<c017de64>] open_namei+0x177/0x5a2
>        [<c01734f6>] get_unused_fd+0x22/0xbd
>        [<c016303c>] __handle_mm_fault+0x8c0/0x8e2
>        [<c01737b9>] do_filp_open+0x25/0x39
>        [<c034a84b>] _spin_unlock+0x14/0x1c
>        [<c0173587>] get_unused_fd+0xb3/0xbd
>        [<c017380f>] do_sys_open+0x42/0xbe
>        [<c01738c4>] sys_open+0x1c/0x1e
>        [<c0102ff4>] syscall_call+0x7/0xb
>        [<ffffffff>] 0xffffffff
> 
> -> #3 (&ei->xattr_sem){----}:
>        [<c013a89d>] __lock_acquire+0x950/0xa70
>        [<c01bd804>] ext3_xattr_get+0x2e/0x239
>        [<c013acf8>] lock_acquire+0x67/0x89
>        [<c01bd804>] ext3_xattr_get+0x2e/0x239
>        [<c013683a>] down_read+0x38/0x49
>        [<c01bd804>] ext3_xattr_get+0x2e/0x239
>        [<c01bd804>] ext3_xattr_get+0x2e/0x239
>        [<c0139909>] mark_held_locks+0x46/0x62
>        [<c0349533>] __mutex_lock_slowpath+0x292/0x2af
>        [<c016ff4c>] cache_alloc_debugcheck_after+0xc4/0x136
>        [<c01be90e>] ext3_xattr_security_get+0x41/0x4b
>        [<c018b185>] generic_getxattr+0x41/0x47
>        [<c01df2c5>] inode_doinit_with_dentry+0x16e/0x4ba
>        [<c01be90e>] ext3_xattr_security_get+0x41/0x4b
>        [<c018b144>] generic_getxattr+0x0/0x47
>        [<c01dfe9a>] superblock_doinit+0x6c3/0x751
>        [<c01e02f3>] selinux_complete_init+0x64/0xb6
>        [<c013683a>] down_read+0x38/0x49
>        [<c01e0302>] selinux_complete_init+0x73/0xb6
>        [<c01eaea1>] security_load_policy+0xed/0x275
>        [<c034ad4a>] _spin_unlock_irqrestore+0x3e/0x4d
>        [<c0139909>] mark_held_locks+0x46/0x62
>        [<c034ad4a>] _spin_unlock_irqrestore+0x3e/0x4d
>        [<c034ad4a>] _spin_unlock_irqrestore+0x3e/0x4d
>        [<c0139b22>] trace_hardirqs_on+0x141/0x164
>        [<c0152452>] delayacct_end+0x55/0x77
>        [<c015246d>] delayacct_end+0x70/0x77
>        [<c0157372>] sync_page+0x0/0x3b
>        [<c0152565>] __delayacct_blkio_end+0x5b/0x5e
>        [<c01629df>] __handle_mm_fault+0x263/0x8e2
>        [<c0157364>] __lock_page+0x58/0x5e
>        [<c01629df>] __handle_mm_fault+0x263/0x8e2
>        [<c011b784>] kunmap_atomic+0x54/0x61
>        [<c016303c>] __handle_mm_fault+0x8c0/0x8e2
>        [<c034c403>] do_page_fault+0x16b/0x4f2
>        [<c01368ac>] up_read+0x14/0x28
>        [<c034c529>] do_page_fault+0x291/0x4f2
>        [<c0103045>] restore_nocheck+0x12/0x15
>        [<c0103045>] restore_nocheck+0x12/0x15
>        [<c0204b16>] __copy_from_user_ll+0xcb/0xd6
>        [<c01e3c9d>] sel_write_load+0xa6/0x2dd
>        [<c01e3bf7>] sel_write_load+0x0/0x2dd
>        [<c017510e>] vfs_write+0xa8/0x154
>        [<c0175729>] sys_write+0x41/0x67
>        [<c0102ff4>] syscall_call+0x7/0xb
>        [<ffffffff>] 0xffffffff
> 
> -> #2 (&isec->lock){--..}:
>        [<c013a89d>] __lock_acquire+0x950/0xa70
>        [<c01df18c>] inode_doinit_with_dentry+0x35/0x4ba
>        [<c0139ca8>] check_usage+0x24/0x245
>        [<c013acf8>] lock_acquire+0x67/0x89
>        [<c01df18c>] inode_doinit_with_dentry+0x35/0x4ba
>        [<c03493a7>] __mutex_lock_slowpath+0x106/0x2af
>        [<c01df18c>] inode_doinit_with_dentry+0x35/0x4ba
>        [<c011c219>] __might_sleep+0x21/0xf0
>        [<c01df18c>] inode_doinit_with_dentry+0x35/0x4ba
>        [<c013ac87>] lock_release+0x16b/0x175
>        [<c01838ac>] d_instantiate+0x7e/0x82
>        [<c01ab0a1>] sysfs_create+0x85/0xb6
>        [<c01aba74>] init_dir+0x0/0x1a
>        [<c01abe50>] create_dir+0x9e/0x19a
>        [<c01ac614>] sysfs_create_dir+0x45/0x5f
>        [<c020120c>] kobject_add+0xdd/0x194
>        [<c02013b8>] subsystem_register+0xf/0x1c
>        [<c049204d>] mnt_init+0xe8/0x1c6
>        [<c0491d3e>] vfs_caches_init+0x135/0x144
>        [<c0493c43>] security_init+0x2d/0x3d
>        [<c0480695>] start_kernel+0x2cb/0x427
>        [<c04801c8>] unknown_bootoption+0x0/0x202
>        [<ffffffff>] 0xffffffff
> 
> -> #1 (&sysfs_inode_imutex_key){--..}:
>        [<c013a89d>] __lock_acquire+0x950/0xa70
>        [<c01aae4a>] sysfs_hash_and_remove+0x34/0x116
>        [<c017cdcf>] __link_path_walk+0xad6/0xc13
>        [<c0139b22>] trace_hardirqs_on+0x141/0x164
>        [<c013acf8>] lock_acquire+0x67/0x89
>        [<c01aae4a>] sysfs_hash_and_remove+0x34/0x116
>        [<c03493a7>] __mutex_lock_slowpath+0x106/0x2af
>        [<c01aae4a>] sysfs_hash_and_remove+0x34/0x116
>        [<c01aae4a>] sysfs_hash_and_remove+0x34/0x116
>        [<c0279d13>] device_remove_file+0x1c/0x28
>        [<c0279d7f>] device_del+0x29/0x1b8
>        [<c0279f16>] device_unregister+0x8/0x10
>        [<c02606b9>] vcs_remove_sysfs+0x17/0x31
>        [<c0265257>] con_close+0x49/0x5b
>        [<c0259ecf>] release_dev+0x210/0x61e
>        [<c025bed2>] tty_open+0x233/0x2ba
>        [<c0176fec>] chrdev_open+0x10b/0x138
>        [<c0176ee1>] chrdev_open+0x0/0x138
>        [<c0173454>] fd_install+0x21/0x49
>        [<c0173785>] nameidata_to_filp+0x24/0x33
>        [<c01743c0>] sys_close+0x21/0xa7
>        [<c025a2ec>] tty_release+0xf/0x18
>        [<c0175a78>] __fput+0xb5/0x16b
>        [<c01734cd>] filp_close+0x51/0x58
>        [<c017440f>] sys_close+0x70/0xa7
>        [<c0102ff4>] syscall_call+0x7/0xb
>        [<ffffffff>] 0xffffffff
> 
> -> #0 (tty_mutex){--..}:
>        [<c013a7a7>] __lock_acquire+0x85a/0xa70
>        [<c019fb54>] print_warning+0x8b/0x12e
>        [<c0349288>] __mutex_unlock_slowpath+0x13c/0x150
>        [<c0139909>] mark_held_locks+0x46/0x62
>        [<c0349288>] __mutex_unlock_slowpath+0x13c/0x150
>        [<c013acf8>] lock_acquire+0x67/0x89
>        [<c019fb54>] print_warning+0x8b/0x12e
>        [<c03493a7>] __mutex_lock_slowpath+0x106/0x2af
>        [<c019fb54>] print_warning+0x8b/0x12e
>        [<c019fb54>] print_warning+0x8b/0x12e
>        [<c01a08ba>] dquot_alloc_inode+0xec/0x10a
>        [<c01b0403>] ext3_new_inode+0x857/0x98b
>        [<c01bf8c5>] start_this_handle+0x256/0x341
>        [<c034a84b>] _spin_unlock+0x14/0x1c
>        [<c01bf994>] start_this_handle+0x325/0x341
>        [<c016ff4c>] cache_alloc_debugcheck_after+0xc4/0x136
>        [<c0139b22>] trace_hardirqs_on+0x141/0x164
>        [<c01bf042>] journal_stop+0x1ce/0x1da
>        [<c01bfa5f>] journal_start+0xaf/0xdd
>        [<c01b62cd>] ext3_create+0x7b/0xe2
>        [<c017b5f3>] vfs_create+0xca/0x134
>        [<c017de64>] open_namei+0x177/0x5a2
>        [<c01734f6>] get_unused_fd+0x22/0xbd
>        [<c014ef76>] __audit_getname+0x84/0xdd
>        [<c01737b9>] do_filp_open+0x25/0x39
>        [<c034a84b>] _spin_unlock+0x14/0x1c
>        [<c0173587>] get_unused_fd+0xb3/0xbd
>        [<c034a80a>] _read_unlock+0x14/0x1c
>        [<c017380f>] do_sys_open+0x42/0xbe
>        [<c01738c4>] sys_open+0x1c/0x1e
>        [<c0102ff4>] syscall_call+0x7/0xb
>        [<ffffffff>] 0xffffffff
> 
> other info that might help us debug this:
> 
> 2 locks held by squid/4111:
>  #0:  (&inode->i_mutex){--..}, at: [<c017ddcf>] open_namei+0xe2/0x5a2
>  #1:  (&s->s_dquot.dqptr_sem){----}, at: [<c01a0802>] dquot_alloc_inode+0x34/0x10a
> 
> stack backtrace:
>  [<c0139027>] print_circular_bug_tail+0x5f/0x67
>  [<c013a7a7>] __lock_acquire+0x85a/0xa70
>  [<c019fb54>] print_warning+0x8b/0x12e
>  [<c0349288>] __mutex_unlock_slowpath+0x13c/0x150
>  [<c0139909>] mark_held_locks+0x46/0x62
>  [<c0349288>] __mutex_unlock_slowpath+0x13c/0x150
>  [<c013acf8>] lock_acquire+0x67/0x89
>  [<c019fb54>] print_warning+0x8b/0x12e
>  [<c03493a7>] __mutex_lock_slowpath+0x106/0x2af
>  [<c019fb54>] print_warning+0x8b/0x12e
>  [<c019fb54>] print_warning+0x8b/0x12e
>  [<c01a08ba>] dquot_alloc_inode+0xec/0x10a
>  [<c01b0403>] ext3_new_inode+0x857/0x98b
>  [<c01bf8c5>] start_this_handle+0x256/0x341
>  [<c034a84b>] _spin_unlock+0x14/0x1c
>  [<c01bf994>] start_this_handle+0x325/0x341
>  [<c016ff4c>] cache_alloc_debugcheck_after+0xc4/0x136
>  [<c0139b22>] trace_hardirqs_on+0x141/0x164
>  [<c01bf042>] journal_stop+0x1ce/0x1da
>  [<c01bfa5f>] journal_start+0xaf/0xdd
>  [<c01b62cd>] ext3_create+0x7b/0xe2
>  [<c017b5f3>] vfs_create+0xca/0x134
>  [<c017de64>] open_namei+0x177/0x5a2
>  [<c01734f6>] get_unused_fd+0x22/0xbd
>  [<c014ef76>] __audit_getname+0x84/0xdd
>  [<c01737b9>] do_filp_open+0x25/0x39
>  [<c034a84b>] _spin_unlock+0x14/0x1c
>  [<c0173587>] get_unused_fd+0xb3/0xbd
>  [<c034a80a>] _read_unlock+0x14/0x1c
>  [<c017380f>] do_sys_open+0x42/0xbe
>  [<c01738c4>] sys_open+0x1c/0x1e
>  [<c0102ff4>] syscall_call+0x7/0xb
>  =======================
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
-- 
Jan Kara <jack@...e.cz>
SuSE CR Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ