[sock_def_readable] WARNING: bad unlock balance detected!
From: Fengguang Wu
Date: Mon Nov 06 2017 - 23:34:26 EST
FYI, this warning shows up in both v4.14-rc8 and v4.13:
[ 144.578809] br-lan: port 1(eth0) entered disabled state
[ 144.581360] device eth0 left promiscuous mode
[ 144.582699] br-lan: port 1(eth0) entered disabled state
[ 144.685012]
[ 144.685370] =====================================
[ 144.686093] WARNING: bad unlock balance detected!
[ 144.686816] 4.14.0-rc8 #158 Not tainted
[ 144.687420] -------------------------------------
[ 144.688132] ubus/19703 is trying to release lock (rcu_preempt_state) at:
[ 144.688911] [<c10e4348>] rcu_read_unlock_special+0x5f8/0x620
[ 144.689621] but there are no more locks to release!
[ 144.690374]
[ 144.690374] other info that might help us debug this:
[ 144.691407] 1 lock held by ubus/19703:
[ 144.692009] #0: (rcu_read_lock){....}, at: [<c2f043d0>] sock_def_readable+0x0/0x100
[ 144.693212]
[ 144.693212] stack backtrace:
[ 144.693980] CPU: 0 PID: 19703 Comm: ubus Not tainted 4.14.0-rc8 #158
[ 144.694923] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
[ 144.696168] Call Trace:
[ 144.696632] dump_stack+0x16/0x1c
[ 144.697195] print_unlock_imbalance_bug+0xb9/0xd0
[ 144.697940] ? rcu_read_unlock_special+0x5f8/0x620
[ 144.698673] ? rcu_read_unlock_special+0x5f8/0x620
[ 144.699390] lock_release+0x1cc/0x490
[ 144.699990] ? rcu_gp_kthread_wake+0x34/0x50
[ 144.700678] ? rcu_read_unlock_special+0x5f8/0x620
[ 144.701431] rt_mutex_unlock+0x1e/0xb0
[ 144.702048] rcu_read_unlock_special+0x5f8/0x620
[ 144.702774] __rcu_read_unlock+0xa7/0xb0
[ 144.703422] sock_def_readable+0xd1/0x100
[ 144.704073] unix_stream_sendmsg+0x2d1/0x4d0
[ 144.704755] sock_sendmsg+0x2d/0x70
[ 144.705334] ___sys_sendmsg+0x390/0x3a0
[ 144.705963] ? kvm_clock_read+0x31/0x80
[ 144.706569] ? kvm_sched_clock_read+0x9/0x20
[ 144.707250] ? sched_clock+0x9/0x10
[ 144.707834] ? sched_clock_cpu+0x1a/0x1e0
[ 144.708473] ? pvclock_clocksource_read+0xd5/0x230
[ 144.709216] ? kvm_clock_read+0x31/0x80
[ 144.709850] ? kvm_sched_clock_read+0x9/0x20
[ 144.710526] ? sched_clock+0x9/0x10
[ 144.711082] ? sched_clock_cpu+0x1a/0x1e0
[ 144.711714] ? __fget_light+0xb7/0xf0
[ 144.712301] ? sockfd_lookup_light+0xd3/0x120
[ 144.713002] __sys_sendmsg+0x59/0x90
[ 144.713585] SyS_socketcall+0x9e4/0xb20
[ 144.714204] do_int80_syscall_32+0x95/0x290
[ 144.714883] entry_INT80_32+0x2f/0x2f
[ 144.715491] EIP: 0xb7f3e595
[ 144.715985] EFLAGS: 00000292 CPU: 0
[ 144.716566] EAX: ffffffda EBX: 00000010 ECX: bffff678 EDX: b7f83ff4
[ 144.717474] ESI: bffff678 EDI: bffff6c4 EBP: bffff708 ESP: bffff668
[ 144.718374] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
procd: - reboot -
[ 145.174700] Unregister pv shared memory for cpu 0
Here is another one, called from unix_stream_connect():
Please press Enter to activate this console.
[ 46.373661] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[ 46.376639] 8021q: adding VLAN 0 to HW filter on device eth0
[ 46.507035]
[ 46.507329] =====================================
[ 46.507940] WARNING: bad unlock balance detected!
[ 46.508543] 4.14.0-rc8 #158 Not tainted
[ 46.509048] -------------------------------------
[ 46.509648] fw3/1185 is trying to release lock (rcu_preempt_state) at:
[ 46.510452] [<c10e4348>] rcu_read_unlock_special+0x5f8/0x620
[ 46.511147] but there are no more locks to release!
[ 46.511766]
[ 46.511766] other info that might help us debug this:
[ 46.512591] 1 lock held by fw3/1185:
[ 46.513070] #0: (rcu_read_lock){....}, at: [<c2f043d0>] sock_def_readable+0x0/0x100
[ 46.514074]
[ 46.514074] stack backtrace:
[ 46.514684] CPU: 0 PID: 1185 Comm: fw3 Not tainted 4.14.0-rc8 #158
[ 46.515440] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
[ 46.516463] Call Trace:
[ 46.516831] dump_stack+0x16/0x1c
[ 46.517288] print_unlock_imbalance_bug+0xb9/0xd0
[ 46.517896] ? rcu_read_unlock_special+0x5f8/0x620
[ 46.518512] ? rcu_read_unlock_special+0x5f8/0x620
[ 46.519113] lock_release+0x1cc/0x490
[ 46.519604] ? rcu_read_unlock_special+0x5f8/0x620
[ 46.520208] ? _raw_spin_unlock_irqrestore+0x86/0xd0
[ 46.520840] rt_mutex_unlock+0x1e/0xb0
[ 46.521341] rcu_read_unlock_special+0x5f8/0x620
[ 46.521936] __rcu_read_unlock+0xa7/0xb0
[ 46.522460] sock_def_readable+0xd1/0x100
[ 46.522993] unix_stream_connect+0x633/0x680
[ 46.523552] SYSC_connect+0x107/0x120
[ 46.524046] SyS_socketcall+0x384/0xb20
[ 46.524562] ? SyS_fcntl64+0x103/0x2e0
[ 46.525060] do_int80_syscall_32+0x95/0x290
[ 46.525610] entry_INT80_32+0x2f/0x2f
[ 46.526099] EIP: 0xb7e97384
[ 46.526505] EFLAGS: 00000296 CPU: 0
[ 46.526977] EAX: ffffffda EBX: 00000003 ECX: bf988038 EDX: b7edd000
[ 46.527741] ESI: bf988038 EDI: bf9880e0 EBP: bf988098 ESP: bf988028
[ 46.528505] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
[ 46.607747] 8021q: adding VLAN 0 to HW filter on device eth0
LKP: HOSTNAME vm-lkp-nhm-dp1-openwrt-ia32-6, MAC , kernel 4.14.0-rc8 158, serial console /dev/ttyS0
Here is the call trace in older v4.13 kernel:
Please press Enter to activate this console.
[ 85.464260] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[ 85.470410] 8021q: adding VLAN 0 to HW filter on device eth0
[ 85.585813]
[ 85.586196] =====================================
[ 85.586870] WARNING: bad unlock balance detected!
[ 85.587555] 4.13.0 #1 Not tainted
[ 85.588098] -------------------------------------
[ 85.588792] ubus/1179 is trying to release lock (rcu_preempt_state) at:
[ 85.589707] [<c10e5840>] rcu_read_unlock_special+0x580/0x5b0
[ 85.590494] but there are no more locks to release!
[ 85.591196]
[ 85.591196] other info that might help us debug this:
[ 85.592201] 1 lock held by ubus/1179:
[ 85.592781] #0: (rcu_read_lock){......}, at: [<c2eadff0>] sock_def_readable+0x0/0x100
[ 85.593930]
[ 85.593930] stack backtrace:
[ 85.594694] CPU: 0 PID: 1179 Comm: ubus Not tainted 4.13.0 #1
[ 85.595474] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
[ 85.596647] Call Trace:
[ 85.597091] dump_stack+0x16/0x1c
[ 85.597626] print_unlock_imbalance_bug+0xb9/0xd0
[ 85.598309] ? rcu_read_unlock_special+0x580/0x5b0
[ 85.599009] ? rcu_read_unlock_special+0x580/0x5b0
[ 85.599713] lock_release+0x1cc/0x490
[ 85.600320] ? rcu_gp_kthread_wake+0x34/0x50
[ 85.600968] ? rcu_read_unlock_special+0x580/0x5b0
[ 85.601653] rt_mutex_unlock+0x1e/0xb0
[ 85.602227] rcu_read_unlock_special+0x580/0x5b0
[ 85.602893] __rcu_read_unlock+0xa7/0xb0
[ 85.603490] sock_def_readable+0xd1/0x100
[ 85.604093] unix_stream_connect+0x633/0x680
[ 85.604724] SYSC_connect+0x107/0x120
[ 85.605290] SyS_socketcall+0x384/0xb20
[ 85.605871] ? SyS_fcntl64+0x103/0x2e0
[ 85.606446] do_int80_syscall_32+0x95/0x1b0
[ 85.607063] entry_INT80_32+0x2f/0x2f
[ 85.607639] EIP: 0xb7f21384
[ 85.608131] EFLAGS: 00000296 CPU: 0
[ 85.608678] EAX: ffffffda EBX: 00000003 ECX: bf923748 EDX: b7f67000
[ 85.609519] ESI: bf923748 EDI: bf9237f0 EBP: bf9237a8 ESP: bf923738
[ 85.610353] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
[ 85.686243] 8021q: adding VLAN 0 to HW filter on device eth0
LKP: HOSTNAME vm-intel12-openwrt-i386-5, MAC , kernel 4.13.0 1, serial console /dev/ttyS0
[ 87.726663] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[ 87.852942] 8021q: adding VLAN 0 to HW filter on device eth0
Thanks,
Fengguang