Re: epoch callback panic

From: Hans Petter Selasky <hps_at_selasky.org>
Date: Fri, 01 Apr 2022 20:33:15 UTC
On 4/1/22 19:07, Peter Holm wrote:
> markj@ asked me to post this one:
> 
> panic: rw lock 0xfffff801bccb1410 not unlocked
> cpuid = 4
> time = 1648770125
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00e48a3d10
> vpanic() at vpanic+0x17f/frame 0xfffffe00e48a3d60
> panic() at panic+0x43/frame 0xfffffe00e48a3dc0
> _rw_destroy() at _rw_destroy+0x35/frame 0xfffffe00e48a3dd0
> in_lltable_destroy_lle_unlocked() at in_lltable_destroy_lle_unlocked+0x1a/frame 0xfffffe00e48a3df0
> epoch_call_task() at epoch_call_task+0x13a/frame 0xfffffe00e48a3e40
> gtaskqueue_run_locked() at gtaskqueue_run_locked+0xa7/frame 0xfffffe00e48a3ec0
> gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0xc2/frame 0xfffffe00e48a3ef0
> fork_exit() at fork_exit+0x80/frame 0xfffffe00e48a3f30
> fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00e48a3f30
> --- trap 0, rip = 0, rsp = 0, rbp = 0 ---
> 
> Details @ https://people.freebsd.org/~pho/stress/log/log0275.txt
> 

Hi,

Maybe you need to grab the lock before destroying it?

Is this easily reproducible?

--HPS