Panic due to recursive mutex in eoib module function eib_fip_send_update (Doc ID 1963420.1)

Last updated on JULY 29, 2016

Applies to:

Solaris Operating System - Version 11.1 to 11.1 [Release 11.0]
Information in this document applies to any platform.

Symptoms

 Solaris x86 machine running solaris 11 update 1 panics in eoib module due to recursive mutex. 

CAT(vmcore.8/11X)> panic
panic on CPU 20
panic string:   recursive mutex_enter, lp=ffffc1c0f11a3ec0 owner=fffffffc823ecc20 thread=fffffffc823ecc20
==== panic kernel thread: 0xfffffffc823ecc20  PID: 0  on CPU: 20 ====
cmd: sched(eoib:eib_manage_keepalives)
just got mutex: 0xffffc1c0f11a3ec0
t_procp: 0xfffffffffc037440 (proc_sched)
  p_as: 0xfffffffffc0394f0 (kas)
  p_zone: 0xfffffffffc105ce0 (global)
t_stk: 0xfffffffc823ecc20  sp: 0xfffffffc823ec8f0  t_stkbase: 0xfffffffc823e8000
t_pri: 60 (SYS)  pctcpu: 0.001305
t_transience: 10 (TRANSIENT)  t_wkld_flags: 0
t_cpupart: 0xfffffffffc08f4b0(0)  last CPU: 20
idle: 2986931923 hrticks (2.986931923s)
start: Wed Jan  8 17:36:46 2014
age: 27216677 seconds (315 days 11 minutes 17 seconds)
t_state:     TS_ONPROC
t_flag:      0x10808 (T_TALLOCSTK|T_PANIC|T_PUSHPAGE)
t_proc_flag: 0 (none set)
t_schedflag: 3 (TS_LOAD|TS_DONT_SWAP)
p_flag:      1 (SSYS)

pc:      unix:vpanic_common+0x13a:  addq   $0xf0,%rsp

unix:vpanic_common+0x13a()
unix:0xfffffffffb88d894()
unix:0xfffffffffb88958c()
void unix:mutex_vector_enter+0x197((mutex_impl_t *)0xffffc1c0f11a3ec0)
unix:mutex_enter - frame recycled
int eoib:eib_fip_send_update+0xd6((eib_t *)0xffffc1c0326ea700, (eib_vnic_t *)0xffffc1c0f11a3e40, (eib_chan_t *)0xffffc1c0d5363960, (eib_wqe_t *)

0xffffc1c03d001658, (uint_t)8, (int *)0xfffffffc823ecba4)
int eoib:eib_fip_send_ka+0x30((eib_t *)0xffffc1c0326ea700, (eib_vnic_t *)0xffffc1c0f11a3e40, (eib_wqe_t *)0xffffc1c03d001658, (int *)0xfffffffc823ecba4)
int eoib:eib_fip_heartbeat+0x7c((eib_t *)0xffffc1c0326ea700, (eib_vnic_t *)0xffffc1c0f11a3e40, (int *)0xfffffffc823ecba4)
void eoib:eib_manage_keepalives+0x1af((eib_t *)0xffffc1c0326ea700)
unix:thread_start+8()
-- end of kernel thread's stack --

CAT(vmcore.8/11X)> mutex -l 0xffffc1c0f11a3ec0
adaptive mutex:  owner: 0xfffffffc823ecc20  waiters: false


Note:  The owner 0xfffffffc823ecc20 is the same thread that panic'ed.
      So, the thread that is holding the mutex is trying to grab the same mutex again.
      That results in a panic.

 

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms