My Oracle Support Banner

recursive rw_enter panic due to race between mac_unregister, mac_open and devfs subsystem (Doc ID 2707395.1)

Last updated on SEPTEMBER 03, 2020

Applies to:

Solaris Operating System - Version 10 1/13 U11 and later
Information in this document applies to any platform.


Solaris 10 system panic as



release: 5.10 (64-bit)
version: Generic_127128-11
machine: i86pc
node name:
system type: i86pc
dump_conflags: 0x10000 (DUMP_KERNEL) on
time of crash:
age of system:
panic CPU:
panic string: recursive rw_enter, lp=fffffffffbd25198 wwwh=ffffffffb72d3be4 thread=ffffffffb72d3be0

sanity checks: settings...
NOTE: /etc/system: module nfssrv not loaded for "set nfssrv:nfs_portmon=1"
NOTE: /etc/system: module fp not loaded for "set fp:fp_offline_ticker=5"
NOTE: /etc/system: module ssd not loaded for 2 "set ssd:..."
NOTE: /etc/system: module fcp not loaded for 2 "set fcp:..."
NOTE: taskq active: system_taskq @ 0xffffffff80b821b8 (active/nthreads: 1/42)
NOTE: system has 8 non-global zones
CAT(vmcore.2/10X)> panic
panic on CPU 0
panic string: recursive rw_enter, lp=fffffffffbd25198 wwwh=ffffffffb72d3be4 thread=ffffffffb72d3be0
==== panic user (LWP_SYS) thread: 0xffffffffb72d3be0 PID: 1262 on CPU: 0 ====
cmd: zoneadmd -z bcsm501
t_procp: 0xffffffff984361a0
  p_as: 0xffffffffb6ef3d28 size: 8536064 RSS: 2613248
  a_hat: 0xffffffffb5e94900
  cpuset: 0
  p_zone: 0xfffffffffbccaa60 (global)
t_stk: 0xfffffe8000c64f10 sp: 0xfffffe8000c640e0 t_stkbase: 0xfffffe8000c60000
t_pri: 0 (TS) pctcpu: 1.009455
t_lwp: 0xffffffffb7289df0 t_tid: 2
  lwp_regs: 0xfffffe8000c64f10
  lwp_ap: 0xfffffe8000c64ed0
  t_mstate: LMS_SYSTEM ms_prev: LMS_SYSTEM
  ms_state_start: 0.112559787 seconds earlier
  ms_start: 2.984183748 seconds earlier
t_cpupart: 0xfffffffffbc4efc0(0) last CPU: 0
idle: 14 ticks (0.14s)
start: Fri Aug 28 19:23:06 2020
age: 3 seconds (3 seconds)
t_state: TS_ONPROC
t_flag: 0x1800 (T_PANIC|T_LWPREUSE)
t_proc_flag: 0x100 (TP_MSACCT)
t_schedflag: 3 (TS_LOAD|TS_DONT_SWAP)
p_flag: 0x42000000 (SMSACCT|SMSFORK)

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

void unix:rw_panic+0x6b((char *)0xfffffffffb8b56ab, (rwlock_impl_t *)???)
void unix:rw_enter_sleep+0x2b8((rwlock_impl_t *)0xfffffffffbd25198, (krw_t)0)
unix:rw_enter - frame recycled
int dls:dls_vlan_create+0xac((const char *)???, (const char *)???, (uint_t)???, (uint16_t)0)
int dls:dls_create+0xb((const char *)???, (const char *)???, (uint_t)???)
unix:dls_create - frame recycled
int mac:mac_register+0x3ca((mac_register_t *)0xffffffffb7576848, (mac_handle_t *)0xffffffffa4f13000)
int e1000g:e1000g_register_mac+0x8c((struct e1000g *)0xffffffffa4f13000)
int e1000g:e1000gattach+0x2a4((dev_info_t *)0xffffffff807187c8, (ddi_attach_cmd_t)0)
int genunix:devi_attach+0x8f((dev_info_t *)0xffffffff807187c8, (ddi_attach_cmd_t)0)
int genunix:attach_node+0x71((dev_info_t *)0xffffffff807187c8)
int genunix:i_ndi_config_node+0xab((dev_info_t *)0xffffffff807187c8, (ddi_node_state_t)6, (uint_t)0)
int genunix:i_ddi_attachchild+0x41((dev_info_t *)0xffffffff807187c8)
int genunix:devi_attach_node+0x71((dev_info_t *)0xffffffff807187c8, (uint_t)???)
int genunix:devi_config_one+0x22a((dev_info_t *)0xffffffff8071c020, (char *)0xffffffffb7069700, (dev_info_t **)0xfffffe8000c64590, (uint_t)0x4080, (clock_t)0)
int genunix:ndi_devi_config_one+0xe6((dev_info_t *)0xffffffff8071c020, (char *)0xffffffffb7069700, (dev_info_t **)0xfffffe8000c64590, (int)0x4080)
int genunix:resolve_pathname+0x138((char *)???, (dev_info_t **)0xfffffe8000c64608, (dev_t *)0, (int *)0)
dev_info_t *genunix:e_ddi_hold_devi_by_path+0x15((char *)???, (int)???)
dev_info_t *genunix:hold_devi+0x10d((major_t)???, (int)???, (int)???)
dev_info_t *genunix:ddi_hold_devi_by_instance+9((major_t)???, (int)???, (int)0x16)
int mac:mac_open+0x75((const char *)0xffffffff9881b2e8, (uint_t)???, (mac_handle_t *)???)
int dls:dls_mac_hold+0x69((dls_link_t *)0xffffffff9881b2e8)
int dls:dls_vlan_hold+0x154((const char *)0xffffffffb60a4a30, (dls_vlan_t **)0xfffffe8000c64950, (boolean_t)1)
void dld:drv_hold_vlan+0x66((dld_ctl_str_t *)???, (mblk_t *)???)
void dld:drv_ioc+0x56((dld_ctl_str_t *)???, (mblk_t *)???)
void dld:drv_uw_put+0x25((queue_t *)???, (mblk_t *)???)
void unix:putnext+0x1f1((queue_t *)0xffffffffb7300ba8, (mblk_t *)0xffffffff97ebc2c0)
int genunix:strdoioctl+0x326((struct stdata *)0, (struct strioctl *)0xfffffe8000c64d40, (mblk_t *)2, (int)0x100003, (int)0xfffffe8000c64df4, (cred_t *)0xffffffffb6ef8c70, (int *)0xfffffe8000c64df4)
int genunix:strioctl+0x15cc((struct vnode *)0xffffffffb73926c0, (int)0xffffffff, (intptr_t)0xfe74d740, (int)0x100003, (int)1, (cred_t *)0xffffffffb6ef8c70, (int *)0xfffffe8000c64df4)
int specfs:spec_ioctl+0x67((struct vnode *)???, (int)???, (intptr_t)???, (int)???, (struct cred *)???, (int *)0xfffffe8000c64df4)
int genunix:fop_ioctl+0x25((vnode_t *)???, (int)0x5308, (intptr_t)???, (int)???, (cred_t *)???, (int *)0xfffffe8000c64df4)
int genunix:ioctl+0xac((int)4, (int)0x5308, (intptr_t)0xfffffffffe74d740)
-- switch to user thread's user stack --

CAT(vmcore.2/10X)> rdi dls:dls_vlan_create+0xac
dls:dls_vlan_create+0xac: movq +0xc314855(%rip),%rdi <dls(data):i_dls_vlan_hash+0>



To view full details, sign in with your My Oracle Support account.

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

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.