On Tue, May 04, 2021 at 11:47:55AM +0200, Alexandr Nedvedicky wrote:
> Hello Sebastien,
> 
> On Tue, May 04, 2021 at 11:08:19AM +0200, Sebastien Marie wrote:
> > Hi,
> > 
> > Currently, I am regulary (~1 per day) get panic on an amd64 host (OpenBSD 
> > 6.9-current (GENERIC.MP) #492: Sat May  1 17:37:28 MDT 2021).

Previous working kernel was OpenBSD 6.9-current (GENERIC.MP) #477: Sat Apr 24 
16:08:13 MDT 2021

> > panic: kernel diagnostic assertion "refcnt != ~0" failed: file 
> > "/usr/src/sys/kern/kern_synch.c", line 826
> > Starting stack trace...
> > panic(ffffffff81dfbc8e) at panic+0x11d
> > __assert(ffffffff81e64b54,ffffffff81e0a6ee,33a,ffffffff81e03b7f) at 
> > __assert+0x2b
> > refcnt_rele(fffffd810bf02458) at refcnt_rele+0x6f
> > pf_state_key_unref(fffffd810bf023f0) at pf_state_key_unref+0x21
> > pf_remove_state(fffffd810c0c4578) at pf_remove_state+0x1fa
> > pf_purge_expired_states(2) at pf_purge_expired_states+0x232
> > pf_purge(ffffffff82236a30) at pf_purge+0x33
> > taskq_thread(ffff800000032080) at taskq_thread+0x81
> > end trace frame: 0x0, count: 249
> > End of stack trace.
> > 
> > The machine is running with ddb.panic=0, and hangs before rebooting (I
> > assume it hangs during dump). I just changed the config to keep in
> > ddb, and I should be able to get additionnal informations next time.
> > 
> > 
> > As it is panicing in pf related code, some informations on the
> > network: the machine has two networks cards (sis0 and em0) bridged,
> > and a vlan (in rdomain).
> > 
> > em0 is egress, and sis0 has only a network printer behind it.
> > 
> > It panics whereas there is no particular interaction with the host,
> > but time of panic is on state removal so I assume after a timeout.
> > 
> </snip>
> 
>     The assert is being tripped out of sudden? or are you also modifying state
>     table (pfctl -Fs). or something else is happening forced reboot/power 
> off...

nothing that I know. The assert seems be raised suddenly. But
according to the stacktrace, it occured due to call to
pf_purge_expired_states(), it is why I mentioned timeout.

thanks.
-- 
Sebastien Marie

Reply via email to