Bug 199476

Summary: lockdep warning: sighand->siglock
Product: [Fedora] Fedora Reporter: Bill Nottingham <notting>
Component: kernelAssignee: Dave Jones <davej>
Status: CLOSED RAWHIDE QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: mingo, pfrields, rvokal, wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-10-28 05:38:02 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 202141    

Description Bill Nottingham 2006-07-19 19:38:56 UTC
On bootup:

Linux version 2.6.17-1.2416.fc6 (brewbuilder.redhat.com) (gcc
version 4.1.1 20060711 (Red H
at 4.1.1-8)) #1 SMP Tue Jul 18 17:28:35 EDT 2006
...
e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex
EXT3-fs: INFO: recovery required on readonly filesystem.
EXT3-fs: write access will be enabled during recovery.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.

=============================================
[ INFO: possible recursive locking detected ]
---------------------------------------------
init/1 is trying to acquire lock:
 (&sighand->siglock){....}, at: [<c047a78a>] flush_old_exec+0x3ae/0x859

but task is already holding lock:
 (&sighand->siglock){....}, at: [<c047a77a>] flush_old_exec+0x39e/0x859

other info that might help us debug this:
2 locks held by init/1:
 #0:  (tasklist_lock){..--}, at: [<c047a76a>] flush_old_exec+0x38e/0x859
 #1:  (&sighand->siglock){....}, at: [<c047a77a>] flush_old_exec+0x39e/0x859

stack backtrace:
 [<c04051e1>] show_trace_log_lvl+0x54/0xfd
 [<c040579d>] show_trace+0xd/0x10
 [<c04058b6>] dump_stack+0x19/0x1b
 [<c043b33a>] __lock_acquire+0x773/0x997
 [<c043bacf>] lock_acquire+0x4b/0x6c
 [<c060630b>] _spin_lock+0x19/0x28
 [<c047a78a>] flush_old_exec+0x3ae/0x859
 [<c0498053>] load_elf_binary+0x4aa/0x1628
 [<c0479cab>] search_binary_handler+0xa7/0x24e
 [<c047b577>] do_execve+0x15b/0x1f9
 [<c04022b4>] sys_execve+0x29/0x4d
 [<c0403faf>] syscall_call+0x7/0xb
audit(1153341893.184:2): enforcing=1 old_enforcing=0 auid=4294967295

Note: root fs is mounted via loopback over NFS. :)

Comment 1 Arjan van de Ven 2006-08-11 01:31:39 UTC
                write_lock_irq(&tasklist_lock);
                spin_lock(&oldsighand->siglock);
                spin_lock(&newsighand->siglock);

                rcu_assign_pointer(current->sighand, newsighand);
                recalc_sigpending();

                spin_unlock(&newsighand->siglock);
                spin_unlock(&oldsighand->siglock);

this'll do it
(fs/exec.c)

Comment 2 Dave Jones 2006-08-11 01:44:59 UTC
Thanks Arjan,

fixed in cvs, should be fixed in tomorrows rawhide.