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 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