On 14.11.2021. 22:50, Alexander Bluhm wrote:
> New diff with fix from mvs@. Please continue testing with this one.
Hi,
i've applied this diff on sasyncd setup with two ipsec sessions and i'm
getting this panic. Box didn't panic instantly but after some time. I
will leave ddb console active...
r620-1# panic: kernel diagnostic assertion "refcnt != ~0" failed: file
"/sys/kern/kern_synch.c", line 824
Stopped at db_enter+0x10: popq %rbp
TID PID UID PRFLAGS PFLAGS CPU COMMAND
382266 23173 68 0x10 0x80 3 sasyncd
407096 64559 68 0x10 0x80 1 isakmpd
*287846 76389 0 0x14000 0x40000200 0K softclock
db_enter() at db_enter+0x10
panic(ffffffff81e52fc8) at panic+0xbf
__assert(ffffffff81ebf6f1,ffffffff81e23497,338,ffffffff81e54ff7) at
__assert+0x25
refcnt_rele(ffff800001488038) at refcnt_rele+0x6f
tdb_free(ffff800001488010) at tdb_free+0x116
tdb_timeout(ffff800001488010) at tdb_timeout+0x39
timeout_run(ffff800001488068) at timeout_run+0x93
softclock_thread(ffff8000fffff260) at softclock_thread+0x11d
end trace frame: 0x0, count: 7
https://www.openbsd.org/ddb.html describes the minimum info required in
bug reports. Insufficient info makes it difficult to find and fix bugs.
ddb{0}>
ddb{0}> show locks
exclusive rwlock netlock r = 0 (0xffffffff8219c1b8)
#0 witness_lock+0x333
#1 tdb_timeout+0x18
#2 timeout_run+0x93
#3 softclock_thread+0x11d
#4 proc_trampoline+0x1c
shared rwlock timeout r = 0 (0xffffffff82160700)
#0 witness_lock+0x333
#1 timeout_run+0x88
#2 softclock_thread+0x11d
#3 proc_trampoline+0x1c
exclusive kernel_lock &kernel_lock r = 0 (0xffffffff8233cbd0)
#0 witness_lock+0x333
#1 __mp_acquire_count+0x38
#2 mi_switch+0x299
#3 sleep_finish+0x11c
#4 softclock_thread+0xd4
#5 proc_trampoline+0x1c
ddb{0}> ps
PID TID PPID UID S FLAGS WAIT COMMAND
23173 382266 23482 68 7 0x90 sasyncd
23482 270620 1 0 3 0x80 kqread sasyncd
64559 407096 82882 68 7 0x90 isakmpd
82882 269197 1 0 3 0x80 netio isakmpd
37653 133205 65408 0 3 0x100083 ttyin ksh
65408 289926 97192 1000 3 0x10008b sigsusp ksh
97192 251184 8671 1000 3 0x98 kqread sshd
8671 56983 39827 0 3 0x82 kqread sshd
46017 298252 1 0 3 0x100083 ttyin ksh
1861 295220 1 0 3 0x100098 kqread cron
16854 177115 71819 95 3 0x100092 kqread smtpd
1393 225046 71819 103 3 0x100092 kqread smtpd
64691 272570 71819 95 3 0x100092 kqread smtpd
83230 208366 71819 95 3 0x100092 kqread smtpd
97497 421023 71819 95 3 0x100092 kqread smtpd
88432 457526 71819 95 3 0x100092 kqread smtpd
71819 188076 1 0 3 0x100080 kqread smtpd
39827 214126 1 0 3 0x88 kqread sshd
29655 495924 1 0 3 0x100080 kqread ntpd
36076 376711 37441 83 3 0x100092 kqread ntpd
37441 106087 1 83 3 0x100092 kqread ntpd
68059 409459 2456 74 3 0x100092 bpf pflogd
2456 325385 1 0 3 0x80 netio pflogd
10369 56599 82476 73 3 0x100090 kqread syslogd
82476 4579 1 0 3 0x100082 netio syslogd
40946 324347 0 0 3 0x14200 bored smr
77501 384609 0 0 3 0x14200 pgzero zerothread
78741 290337 0 0 3 0x14200 aiodoned aiodoned
45215 268650 0 0 3 0x14200 syncer update
62355 93014 0 0 3 0x14200 cleaner cleaner
44276 256950 0 0 3 0x14200 reaper reaper
30498 450293 0 0 3 0x14200 pgdaemon pagedaemon
43809 11307 0 0 3 0x14200 usbtsk usbtask
58116 68425 0 0 3 0x14200 usbatsk usbatsk
25415 496397 0 0 3 0x40014200 acpi0 acpi0
9902 65516 0 0 7 0x40014200 idle5
23605 371050 0 0 7 0x40014200 idle4
96607 441776 0 0 3 0x40014200 idle3
5176 230617 0 0 7 0x40014200 idle2
19030 267534 0 0 3 0x40014200 idle1
32317 110469 0 0 3 0x14200 bored sensors
77670 69914 0 0 3 0x14200 bored softnet
76476 412718 0 0 3 0x14200 bored systqmp
2878 385617 0 0 3 0x14200 bored systq
*76389 287846 0 0 7 0x40014200 softclock
23236 11183 0 0 3 0x40014200 idle0
1 95380 0 0 3 0x82 wait init
0 0 -1 0 3 0x10200 scheduler swapper
ddb{0}> mach ddbcpu 1
Stopped at x86_ipi_db+0x12: leave
x86_ipi_db(ffff800022409ff0) at x86_ipi_db+0x12
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x23
__mp_lock(ffffffff8233c9c8) at __mp_lock+0xa7
__mp_acquire_count(ffffffff8233c9c8,3) at __mp_acquire_count+0x38
mi_switch() at mi_switch+0x299
sleep_finish(ffff800022d8d310,1) at sleep_finish+0x11c
msleep(fffffd841c7ad0e0,fffffd841c7ad0e0,318,ffffffff81eb639b,76e) at
msleep+0x
cc
kqueue_sleep(fffffd841c7ad0e0,ffff800022d8d810) at kqueue_sleep+0xbe
kqueue_scan(ffff800022d8d5c0,8,ffff800022d8d4c0,ffff800022d8d810,ffff800022cec0
08,ffff800022d8d77c) at kqueue_scan+0xfc
dopselect(ffff800022cec008,17,d1c4a8b34b0,d1c4a8ac2e0,0,ffff800022d8d810,2fe4ad
0c81ebc82d,ffff800022cec008) at dopselect+0x388
sys_pselect(ffff800022cec008,ffff800022d8d880,ffff800022d8d8e0) at
sys_pselect+
0xdb
syscall(ffff800022d8d950) at syscall+0x3a9
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x7f7fffff4aa0, count: 1
ddb{1}>
ddb{1}> mach ddbcpu 2
Stopped at x86_ipi_db+0x12: leave
x86_ipi_db(ffff800022412ff0) at x86_ipi_db+0x12
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x23
acpicpu_idle() at acpicpu_idle+0x281
sched_idle(ffff800022412ff0) at sched_idle+0x27e
end trace frame: 0x0, count: 10
ddb{2}>
ddb{2}> mach ddbcpu 3
Stopped at x86_ipi_db+0x12: leave
x86_ipi_db(ffff80002241bff0) at x86_ipi_db+0x12
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x23
__mp_lock(ffffffff8233c9c8) at __mp_lock+0xa0
__mp_acquire_count(ffffffff8233c9c8,3) at __mp_acquire_count+0x38
mi_switch() at mi_switch+0x299
sleep_finish(ffff800022d33680,1) at sleep_finish+0x11c
msleep(fffffd841c7ad1b8,fffffd841c7ad1b8,318,ffffffff81eb639b,19e2) at
msleep+0
xcc
kqueue_sleep(fffffd841c7ad1b8,ffff800022d33b80) at kqueue_sleep+0xbe
kqueue_scan(ffff800022d33930,3,ffff800022d33830,ffff800022d33b80,ffff800022cecd
28,ffff800022d33aec) at kqueue_scan+0xfc
dopselect(ffff800022cecd28,6,7eba489b100,7eba489bc70,0,ffff800022d33b80,2fe4ad0
c81ebc82d,ffff800022cecd28) at dopselect+0x388
sys_pselect(ffff800022cecd28,ffff800022d33bf0,ffff800022d33c50) at
sys_pselect+
0xdb
syscall(ffff800022d33cc0) at syscall+0x3a9
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x7f7ffffd4a10, count: 1
ddb{3}>
ddb{3}> mach ddbcpu 4
Stopped at x86_ipi_db+0x12: leave
x86_ipi_db(ffff800022424ff0) at x86_ipi_db+0x12
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x23
acpicpu_idle() at acpicpu_idle+0x281
sched_idle(ffff800022424ff0) at sched_idle+0x27e
end trace frame: 0x0, count: 10
ddb{4}> mach ddbcpu 5
Stopped at x86_ipi_db+0x12: leave
x86_ipi_db(ffff80002242dff0) at x86_ipi_db+0x12
x86_ipi_handler() at x86_ipi_handler+0x80
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x23
acpicpu_idle() at acpicpu_idle+0x281
sched_idle(ffff80002242dff0) at sched_idle+0x27e
end trace frame: 0x0, count: 10
ddb{5}>