panic: kernel diagnostic assertion "refs != ~0" failed: file "/syzkaller/managers/multicore/kerneWARNING: SPL NOT LOWERED ON SYSCALL 110 50 EXIT 0 a
Stopped at savectx+0xae: movl $0,%gs:0x680
TID PID UID PRFLAGS PFLAGS CPU COMMAND
*444408 11559 0 0x2 0 1 syz-executor
savectx() at savectx+0xae
end of kernel
end trace frame: 0x7d30d4eb3a90, count: 14
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{1}>
ddb{1}> set $lines = 0
ddb{1}> set $maxwidth = 0
ddb{1}> show panic
*cpu0: kernel diagnostic assertion "refs != ~0" failed: file "/syzkaller/managers/multicore/kernel/sys/kern/kern_synch.c", line 995
ddb{1}> trace
savectx() at savectx+0xae
end of kernel
end trace frame: 0x7d30d4eb3a90, count: -1
ddb{1}> show registers
rdi 0
rsi 0
rbp 0xffff80002a2e4570
rbx 0
rdx 0
rcx 0xffff80002a2a4f78
rax 0x34
r8 0xffff80002a2e44a0
r9 0x1
r10 0xa76ecb32985bacdf
r11 0xc5dffed11d46918b
r12 0
r13 0
r14 0xffff80002a2a4f78
r15 0
rip 0xffffffff82f233ee savectx+0xae
cs 0x8
rflags 0x46
rsp 0xffff80002a2e44f0
ss 0
savectx+0xae: movl $0,%gs:0x680
ddb{1}> show proc
PROC (syz-executor) tid=444408 pid=11559 tcnt=1 stat=onproc
flags process=2<EXEC> proc=0
runpri=24, usrpri=52, slppri=24, nice=20
wchan=0x0, wmesg=, ps_single=0x0 scnt=0 ecnt=0
forw=0xffffffffffffffff, list=0xffff80002a2a42a8,0xffff80002a2a4548
process=0xffff80002a2744c8 user=0xffff80002a2df000, vmspace=0xfffffd806e064010
estcpu=2, cpticks=2, pctcpu=0.4, user=1, sys=5, intr=0
ddb{1}> ps
PID TID PPID UID S FLAGS WAIT COMMAND
31334 154716 65827 0 2 0 syz-executor
31334 244382 65827 0 2 0x4000000 syz-executor
32320 460934 88486 0 2 0 syz-executor
32320 40266 88486 0 2 0x4000000 syz-executor
83387 457763 56538 0 2 0 syz-executor
83387 310481 56538 0 3 0x4000000 smrbar syz-executor
80995 310085 0 0 3 0x14200 bored sosplice
13795 68366 99424 0 2 0 syz-executor
13795 50450 99424 0 3 0x4000080 fsleep syz-executor
35997 222066 8615 0 2 0 syz-executor
35997 46686 8615 0 3 0x4000080 fsleep syz-executor
35997 148397 8615 0 3 0x4000080 fsleep syz-executor
61233 443505 55148 0 2 0 syz-executor
61233 31313 55148 0 3 0x4000080 fsleep syz-executor
64871 258189 62230 0 2 0 syz-executor
8615 318023 11559 0 3 0x82 nanoslp syz-executor
99424 471390 11559 0 3 0x82 nanoslp syz-executor
55148 489334 11559 0 3 0x82 nanoslp syz-executor
88387 273005 11559 0 3 0x82 nanoslp syz-executor
88486 223267 11559 0 3 0x82 nanoslp syz-executor
62230 518770 11559 0 2 0x2 syz-executor
56538 413215 11559 0 3 0x82 nanoslp syz-executor
65827 7875 11559 0 3 0x82 nanoslp syz-executor
*11559 444408 24459 0 7 0x2 syz-executor
24459 31951 6066 0 3 0x10008a sigsusp ksh
6066 462138 62413 0 3 0x98 kqread sshd-session
62413 125486 29947 0 3 0x92 kqread sshd-session
34882 90258 1 0 3 0x100083 ttyin getty
29947 469358 1 0 3 0x88 kqread sshd
21731 133936 89879 74 3 0x1100092 bpf pflogd
89879 408074 1 0 3 0x80 sbwait pflogd
4290 282836 91181 73 3 0x1100090 kqread syslogd
91181 98092 1 0 3 0x100082 sbwait syslogd
46330 366862 1 0 3 0x100080 kqread resolvd
72356 360210 71237 77 3 0x100092 kqread dhcpleased
49284 185805 71237 77 2 0x100012 dhcpleased
71237 160509 1 0 3 0x80 kqread dhcpleased
27253 192692 0 0 3 0x14200 pause smr
36023 471689 0 0 2 0x14200 zerothread
12933 130755 0 0 3 0x14200 aiodoned aiodoned
86642 473784 0 0 3 0x14200 syncer update
38343 251486 0 0 3 0x14200 cleaner cleaner
59343 432788 0 0 3 0x14200 reaper reaper
37600 168236 0 0 3 0x14200 pgdaemon pagedaemon
81013 82822 0 0 3 0x14200 bored viomb
51432 459663 0 0 3 0x40014200 acpi0 acpi0
1987 299234 0 0 3 0x40014200 idle1
69921 390471 0 0 3 0x14200 bored softnet3
42344 334137 0 0 3 0x14200 bored softnet2
52361 379601 0 0 3 0x14200 bored softnet1
66374 210766 0 0 2 0x14200 softnet0
80573 122467 0 0 3 0x14200 bored systqmp
4615 379809 0 0 3 0x14200 bored systq
83500 236827 0 0 3 0x14200 tmoslp softclockmp
87459 405872 0 0 3 0x40014200 tmoslp softclock
15910 289578 0 0 3 0x40014200 idle0
1 369324 0 0 3 0x82 wait init
0 0 -1 0 3 0x10200 scheduler swapper
ddb{1}> show all locks
CPU 1:
exclusive mutex &pmap->pm_mtx r = 0 (0xfffffd806bb16210)
#0 witness_lock+0x5bb stacktrace_save sys/sys/stacktrace.h:37 [inline]
#0 witness_lock+0x5bb sys/kern/subr_witness.c:1160
#1 mtx_enter_try+0x178 sys/kern/kern_lock.c:-1
#2 mtx_enter+0x60 sys/kern/kern_lock.c:239
#3 pmap_enter+0x246 rcr3 machine/cpufunc.h:139 [inline]
#3 pmap_enter+0x246 pmap_map_ptes sys/arch/amd64/amd64/pmap.c:437 [inline]
#3 pmap_enter+0x246 sys/arch/amd64/amd64/pmap.c:2770
#4 uvm_fault_lower+0x60a sys/uvm/uvm_fault.c:1542
#5 uvm_fault+0x278 sys/uvm/uvm_fault.c:-1
#6 upageflttrap+0xa9 sys/arch/amd64/amd64/trap.c:188
#7 usertrap+0x2d8 sys/arch/amd64/amd64/trap.c:436
#8 recall_trap+0x8
Process 31334 (syz-executor) thread 0xffff8000ffff02b0 (244382)
exclusive rwlock amaplk r = 0 (0xfffffd806babf190)
#0 witness_lock+0x5bb stacktrace_save sys/sys/stacktrace.h:37 [inline]
#0 witness_lock+0x5bb sys/kern/subr_witness.c:1160
#1 rw_do_enter_write+0x3ea sys/kern/kern_rwlock.c:316
#2 uvm_fault_check+0x5a9 sys/uvm/uvm_fault.c:862
#3 uvm_fault+0x106 sys/uvm/uvm_fault.c:677
#4 upageflttrap+0xa9 sys/arch/amd64/amd64/trap.c:188
#5 usertrap+0x2d8 sys/arch/amd64/amd64/trap.c:436
#6 recall_trap+0x8
shared rwlock vmmaplk r = 0 (0xfffffd806bb178a0)
#0 witness_lock+0x5bb stacktrace_save sys/sys/stacktrace.h:37 [inline]
#0 witness_lock+0x5bb sys/kern/subr_witness.c:1160
#1 rw_do_enter_read+0x3af sys/kern/kern_rwlock.c:405
#2 uvmfault_lookup+0x122 sys/uvm/uvm_fault.c:1924
#3 uvm_fault_check+0x4a sys/uvm/uvm_fault.c:741
#4 uvm_fault+0x106 sys/uvm/uvm_fault.c:677
#5 upageflttrap+0xa9 sys/arch/amd64/amd64/trap.c:188
#6 usertrap+0x2d8 sys/arch/amd64/amd64/trap.c:436
#7 recall_trap+0x8
Process 66374 (softnet0) thread 0xffff8000ffffe7b0 (210766)
shared rwlock softnet0 r = 0 (0xffff80000002c078)
#0 witness_lock+0x5bb stacktrace_save sys/sys/stacktrace.h:37 [inline]
#0 witness_lock+0x5bb sys/kern/subr_witness.c:1160
#1 taskq_thread+0x12a sys/kern/kern_task.c:442
#2 proc_trampoline+0x10
ddb{1}> show malloc
Type InUse MemUse HighUse Limit Requests Type Lim
devbuf 10194 11024K 11089K 166960K 11304 0
pcb 17 12K 12K 166960K 21 0
rtable 238 7K 7K 166960K 361 0
pf 39 18K 18K 166960K 59 0
ifaddr 46 8K 8K 166960K 57 0
ifgroup 62 2K 2K 166960K 77 0
sysctl 1 1K 1K 166960K 1 0
counters 70 37K 37K 166960K 84 0
ioctlops 0 0K 4K 166960K 1489 0
mount 1 1K 1K 166960K 1 0
log 0 0K 0K 166960K 4 0
vnodes 1343 84K 84K 166960K 1376 0
UFS quota 1 32K 32K 166960K 1 0
UFS mount 5 36K 36K 166960K 5 0
shm 2 1K 1K 166960K 2 0
VM map 2 1K 1K 166960K 2 0
sem 3 0K 0K 166960K 4 0
dirhash 12 2K 2K 166960K 12 0
ACPI 1692 195K 286K 166960K 12470 0
file desc 18 65K 93K 166960K 154 0
proc 74 103K 128K 166960K 538 0
subproc 72 4K 4K 166960K 72 0
NFS srvsock 1 0K 0K 166960K 1 0
NFS daemon 1 16K 16K 166960K 1 0
in_multi 100 7K 7K 166960K 103 0
ether_multi 1 0K 0K 166960K 1 0
ISOFS mount 1 32K 32K 166960K 1 0
MSDOSFS mount 1 16K 16K 166960K 1 0
ttys 37 175K 175K 166960K 37 0
exec 0 0K 1K 166960K 365 0
fusefs mount 1 32K 32K 166960K 1 0
tdb 3 0K 0K 166960K 3 0
VM swap 8 62K 64K 166960K 10 0
UVM amap 237 184K 186K 166960K 3037 0
UVM aobj 3 2K 2K 166960K 3 0
pinsyscall 43 86K 104K 166960K 1242 0
memdesc 1 4K 4K 166960K 1 0
crypto data 1 1K 1K 166960K 1 0
NDP 30 2K 2K 166960K 34 0
temp 33 8650K 8714K 166960K 3988 0
kqueue 16 26K 26K 166960K 30 0
SYN cache 2 16K 16K 166960K 2 0
ddb{1}> show all pools
Name Size Requests Fail Releases Pgreq Pgrel Npage Hiwat Minpg Maxpg Idle
plcache 128 26 0 0 1 0 1 1 0 8 0
rtpcb 120 35 0 32 1 0 1 1 0 8 0
rtentry 176 115 0 4 6 0 6 6 0 8 0
unpcb 144 47 0 30 1 0 1 1 0 8 0
syncache 336 3 0 3 1 0 1 1 0 8 1
tcpcb 808 10 0 6 1 0 1 1 0 8 0
arp 128 18 0 0 1 0 1 1 0 8 0
inpcb 384 73 0 66 2 0 2 2 0 8 1
nd6 144 24 0 0 1 0 1 1 0 8 0
kcovpl 48 8 0 0 1 0 1 1 0 8 0
ppxss 1192 6 0 4 1 0 1 1 0 8 0
pppxif 1504 4 0 3 1 0 1 1 0 8 0
pfosfp 40 1428 0 1005 5 0 5 5 0 8 0
pfosfpen 112 1428 0 714 21 0 21 21 0 8 0
pfstitem 24 18 0 0 1 0 1 1 0 8 0
pfstkey 128 18 0 0 1 0 1 1 0 8 0
pfstate 384 18 0 0 2 0 2 2 0 8 0
pfrule 1344 21 0 16 2 1 1 2 0 8 0
art_heap8 4096 1 0 0 1 0 1 1 0 8 0
art_heap4 256 465 0 6 29 0 29 29 0 8 0
art_table 32 466 0 6 4 0 4 4 0 8 0
art_node 16 112 0 11 1 0 1 1 0 8 0
semapl 112 2 0 1 1 0 1 1 0 8 0
dirhash 1024 17 0 0 3 0 3 3 0 8 0
dino2pl 256 1598 0 82 95 0 95 95 0 8 0
ffsino 288 1598 0 82 109 0 109 109 0 8 0
nchpl 144 1806 0 114 63 0 63 63 0 8 0
uvmvnodes 80 1693 0 0 35 0 35 35 0 8 0
vnodes 216 1693 0 0 95 0 95 95 0 8 0
namei 1024 5651 0 5651 2 0 2 2 0 8 2
percpumem 16 57 0 7 1 0 1 1 0 8 0
kstatmem 264 36 0 8 2 0 2 2 0 8 0
scxspl 216 5761 0 5761 3 1 2 2 1 8 2
plimitpl 152 29 0 10 1 0 1 1 0 8 0
sigapl 424 456 0 405 7 0 7 7 0 8 1
knotepl 120 293 0 0 9 0 9 9 0 8 0
kqueuepl 224 34 0 21 1 0 1 1 0 8 0
pipepl 336 104 0 77 3 0 3 3 0 8 0
fdescpl 520 437 0 405 3 0 3 3 0 8 0
filepl 160 1594 0 1375 12 0 12 12 0 8 2
lockfpl 104 10 0 8 1 0 1 1 0 8 0
lockfspl 48 6 0 4 1 0 1 1 0 8 0
sessionpl 144 22 0 13 1 0 1 1 0 8 0
pgrppl 48 30 0 13 1 0 1 1 0 8 0
ucredpl 104 81 0 68 1 0 1 1 0 8 0
zombiepl 144 406 0 405 1 0 1 1 0 8 0
processpl 1208 456 0 405 5 0 5 5 0 8 0
procpl 656 484 0 426 5 0 5 5 0 8 0
sockpl 728 155 0 127 4 0 4 4 0 8 1
mcl64k 65536 1 0 0 1 0 1 1 0 8 0
mcl16k 16384 2 0 0 1 0 1 1 0 8 0
mcl12k 12288 1 0 0 1 0 1 1 0 8 0
mcl8k 8192 2 0 0 1 0 1 1 0 8 0
mcl4k 4096 129 0 0 17 0 17 17 0 8 0
mcl2k 2048 21 0 0 3 0 3 3 0 8 0
mtagpl 96 3 0 0 1 0 1 1 0 8 0
mbufpl 256 170 0 0 11 0 11 11 0 8 0
bufpl 280 2317 0 123 157 0 157 157 0 8 0
anonpl 32 5420 0 0 44 0 44 44 0 246 0
amapchunkpl 152 8023 0 7420 24 0 24 24 0 158 0
amappl16 200 608 0 585 3 0 3 3 0 8 1
amappl15 192 3 0 3 1 0 1 1 0 8 1
amappl14 184 108 0 96 1 0 1 1 0 8 0
amappl13 176 29 0 29 1 0 1 1 0 8 1
amappl12 168 1078 0 1047 3 1 2 2 0 8 0
amappl11 160 52 0 37 1 0 1 1 0 8 0
amappl10 152 1 0 1 1 0 1 1 0 8 1
amappl9 144 255 0 255 1 0 1 1 0 8 1
amappl8 136 17 0 15 1 0 1 1 0 8 0
amappl7 128 106 0 94 1 0 1 1 0 8 0
amappl6 120 181 0 178 1 0 1 1 0 8 0
amappl5 112 117 0 108 1 0 1 1 0 8 0
amappl4 104 307 0 287 1 0 1 1 0 8 0
amappl3 96 1329 0 1220 4 1 3 3 0 8 0
amappl2 88 631 0 567 2 0 2 2 0 8 0
amappl1 80 8180 0 7580 15 0 15 15 0 8 1
amappl 88 2361 0 2199 4 0 4 4 0 92 0
dma4096 4096 1 0 1 1 1 0 1 0 8 0
dma1024 1024 1 0 0 1 0 1 1 0 8 0
dma256 256 6 0 6 1 1 0 1 0 8 0
dma128 128 253 0 253 1 1 0 1 0 8 0
dma64 64 6 0 6 1 1 0 1 0 8 0
dma32 32 7 0 7 1 1 0 1 0 8 0
dma16 16 18 0 17 1 0 1 1 0 8 0
aobjpl 72 2 0 0 1 0 1 1 0 8 0
uaddrrnd 24 437 0 405 1 0 1 1 0 8 0
uaddrbest 32 2 0 0 1 0 1 1 0 8 0
uaddr 24 437 0 405 1 0 1 1 0 8 0
vmmpekpl 168 5268 0 5234 2 0 2 2 0 8 0
vmmpepl 168 33005 0 31021 88 0 88 88 0 357 0
vmsppl 480 436 0 405 5 0 5 5 0 8 0
rwobjpl 72 12794 0 10189 49 0 49 49 0 8 0
pdppl 4096 881 0 810 99 14 85 85 0 8 14
pvpl 32 13647 0 0 111 0 111 111 0 265 0
pmappl 256 436 0 405 3 0 3 3 0 8 0
extentpl 40 45 0 27 1 0 1 1 0 8 0
phpool 112 383 0 16 11 0 11 11 0 8 0
ddb{1}> machine ddbcpu 0
Stopped at x86_ipi_db+0x27: addq $0x8,%rsp
x86_ipi_db(ffffffff83846ff0) at x86_ipi_db+0x27 sys/arch/amd64/amd64/db_interface.c:394
x86_ipi_handler() at x86_ipi_handler+0xd9 sys/arch/amd64/amd64/ipi.c:106
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
__mp_lock(ffffffff83a19340) at __mp_lock+0x19e __mp_lock_spin sys/kern/kern_lock.c:113 [inline]
__mp_lock(ffffffff83a19340) at __mp_lock+0x19e sys/kern/kern_lock.c:144
softintr_dispatch(0) at softintr_dispatch+0x12a sys/kern/kern_softintr.c:83
dosoftint(0) at dosoftint+0x54 sys/arch/amd64/amd64/intr.c:840
Xsoftclock() at Xsoftclock+0x27
cnputc(65) at cnputc+0x61 sys/dev/cons.c:218
db_putchar(65) at db_putchar+0x65c sys/ddb/db_output.c:155
kprintf() at kprintf+0x2aba sys/kern/subr_prf.c:1065
db_printf(ffffffff833f129b) at db_printf+0x9b sys/kern/subr_prf.c:-1
panic(ffffffff8345e69b) at panic+0x103 sys/kern/subr_prf.c:216
__assert(ffffffff8340ad21,ffffffff8340e528,3e3,ffffffff8340e570) at __assert+0x29 sys/kern/subr_prf.c:-1
refcnt_finalize(ffff80003c430008,ffffffff83352070) at refcnt_finalize+0x1c8 sys/kern/kern_synch.c:996
end trace frame: 0xffff80002f3dc6d0, count: 0
ddb{0}> trace
x86_ipi_db(ffffffff83846ff0) at x86_ipi_db+0x27 sys/arch/amd64/amd64/db_interface.c:394
x86_ipi_handler() at x86_ipi_handler+0xd9 sys/arch/amd64/amd64/ipi.c:106
Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27
__mp_lock(ffffffff83a19340) at __mp_lock+0x19e __mp_lock_spin sys/kern/kern_lock.c:113 [inline]
__mp_lock(ffffffff83a19340) at __mp_lock+0x19e sys/kern/kern_lock.c:144
softintr_dispatch(0) at softintr_dispatch+0x12a sys/kern/kern_softintr.c:83
dosoftint(0) at dosoftint+0x54 sys/arch/amd64/amd64/intr.c:840
Xsoftclock() at Xsoftclock+0x27
cnputc(65) at cnputc+0x61 sys/dev/cons.c:218
db_putchar(65) at db_putchar+0x65c sys/ddb/db_output.c:155
kprintf() at kprintf+0x2aba sys/kern/subr_prf.c:1065
db_printf(ffffffff833f129b) at db_printf+0x9b sys/kern/subr_prf.c:-1
panic(ffffffff8345e69b) at panic+0x103 sys/kern/subr_prf.c:216
__assert(ffffffff8340ad21,ffffffff8340e528,3e3,ffffffff8340e570) at __assert+0x29 sys/kern/subr_prf.c:-1
refcnt_finalize(ffff80003c430008,ffffffff83352070) at refcnt_finalize+0x1c8 sys/kern/kern_synch.c:996
pppx_if_destroy(0,ffff80003c430000) at pppx_if_destroy+0x3d sys/net/if_pppx.c:806
pppxclose(205b9a,1,2000,ffff8000ffff2530) at pppxclose+0xa0 sys/net/if_pppx.c:553
spec_close(ffff80002f3dc7a0) at spec_close+0x412 sys/kern/spec_vnops.c:-1
VOP_CLOSE(fffffd8064f6d518,1,fffffd807f7d3478,ffff8000ffff2530) at VOP_CLOSE+0x133 sys/kern/vfs_vops.c:156
vn_closefile(fffffd806bb42e00,ffff8000ffff2530) at vn_closefile+0x12b vn_close sys/kern/vfs_vnops.c:292 [inline]
vn_closefile(fffffd806bb42e00,ffff8000ffff2530) at vn_closefile+0x12b sys/kern/vfs_vnops.c:615
fdrop(fffffd806bb42e00,ffff8000ffff2530) at fdrop+0x126 sys/kern/kern_descrip.c:1265
closef(fffffd806bb42e00,ffff8000ffff2530) at closef+0x192 sys/kern/kern_descrip.c:1249
fdfree(ffff8000ffff2530) at fdfree+0x116 sys/kern/kern_descrip.c:1181
exit1(ffff8000ffff2530,0,0,1) at exit1+0x58f sys/kern/kern_exit.c:214
sys_exit(ffff8000ffff2530,ffff80002f3dcb10,ffff80002f3dca60) at sys_exit+0x1a sys/kern/kern_exit.c:-1
syscall(ffff80002f3dcb10) at syscall+0xb08 mi_syscall sys/sys/syscall_mi.h:176 [inline]
syscall(ffff80002f3dcb10) at syscall+0xb08 sys/arch/amd64/amd64/trap.c:579
Xsyscall() at Xsyscall+0x128
end of kernel
end trace frame: 0x7ab565fc2b50, count: -26
ddb{0}> machine ddbcpu 1
Stopped at savectx+0xae: movl $0,%gs:0x680
savectx() at savectx+0xae
end of kernel
end trace frame: 0x7d30d4eb3a90, count: 14
ddb{1}> trace
savectx() at savectx+0xae
end of kernel
end trace frame: 0x7d30d4eb3a90, count: -1