witness: lock order reversal: 1st 0xffff800001316748 sbufsnd (&so->so_snd.sb_lock) 2nd 0xfffffd806be8e428 inode (&ip->i_lock) lock order [1] sbufsnd (&so->so_snd.sb_lock) -> [2] inode (&ip->i_lock) lock order data 0xffffffff83120c01 -> 0xffffffff830cf67f is missing lock order [2] inode (&ip->i_lock) -> [3] sbufrcv (&so->so_rcv.sb_lock) #0 rw_do_enter_write+0xb7 sys/kern/kern_rwlock.c:233 #1 sblock+0xb7 sys/kern/uipc_socket2.c:537 #2 soreceive+0x28e sys/kern/uipc_socket.c:876 #3 fifo_read+0x11a sys/miscfs/fifofs/fifo_vnops.c:264 #4 VOP_READ+0x102 sys/kern/vfs_vops.c:227 #5 vn_rdwr+0x15b #6 vndsetcred+0xa1 sys/dev/vnd.c:684 #7 vndioctl+0xe6c sys/dev/vnd.c:485 #8 VOP_IOCTL+0xac sys/kern/vfs_vops.c:264 #9 vn_ioctl+0xf8 sys/kern/vfs_vnops.c:531 #10 sys_ioctl+0x5c3 #11 syscall+0xbc6 mi_syscall sys/sys/syscall_mi.h:176 [inline] #11 syscall+0xbc6 sys/arch/amd64/amd64/trap.c:577 #12 Xsyscall+0x128 lock order [3] sbufrcv (&so->so_rcv.sb_lock) -> [1] sbufsnd (&so->so_snd.sb_lock) #0 rw_do_enter_write+0xb7 sys/kern/kern_rwlock.c:233 #1 sblock+0xb7 sys/kern/uipc_socket2.c:537 #2 sosplice+0x40d sys/kern/uipc_socket.c:1358 #3 sys_setsockopt+0x2ba sys/kern/uipc_syscalls.c:1221 #4 syscall+0xbc6 mi_syscall sys/sys/syscall_mi.h:176 [inline] #4 syscall+0xbc6 sys/arch/amd64/amd64/trap.c:577 #5 Xsyscall+0x128 Stopped at db_enter+0x25: addq $0x8,%rsp ddb{1}> ddb{1}> set $lines = 0 ddb{1}> set $maxwidth = 0 ddb{1}> show panic the kernel did not panic ddb{1}> trace db_enter() at db_enter+0x25 sys/arch/amd64/amd64/db_interface.c:437 witness_checkorder(fffffd806be8e428,9,0) at witness_checkorder+0x1047 rw_do_enter_write(fffffd806be8e410,1) at rw_do_enter_write+0xb7 sys/kern/kern_rwlock.c:233 rrw_enter(fffffd806be8e410,1) at rrw_enter+0xc6 sys/kern/kern_rwlock.c:616 VOP_LOCK(fffffd805d39ca78,2001) at VOP_LOCK+0xa6 sys/kern/vfs_vops.c:524 vn_lock(fffffd805d39ca78,2001) at vn_lock+0xa4 sys/kern/vfs_vnops.c:570 vfs_lookup(ffff80003a987f88) at vfs_lookup+0x109 sys/kern/vfs_lookup.c:418 namei(ffff80003a987f88) at namei+0x7aa sys/kern/vfs_lookup.c:250 unp_connect(ffff800001316588,fffffd8060775000,ffff800033d5a7c8) at unp_connect+0x27d sys/kern/uipc_usrreq.c:868 uipc_dgram_send(ffff800001316588,fffffd8060775c00,fffffd8060775000,0) at uipc_dgram_send+0x131 sys/kern/uipc_usrreq.c:607 sosend(ffff800001316588,fffffd8060775000,ffff80003a988208,0,0,0) at sosend+0x804 sendit(ffff800033d5a7c8,3,ffff80003a988380,0,ffff80003a988440) at sendit+0x721 sys/kern/uipc_syscalls.c:779 sys_sendmsg(ffff800033d5a7c8,ffff80003a9884f0,ffff80003a988440) at sys_sendmsg+0x246 sys/kern/uipc_syscalls.c:597 syscall(ffff80003a9884f0) at syscall+0xbc6 mi_syscall sys/sys/syscall_mi.h:176 [inline] syscall(ffff80003a9884f0) at syscall+0xbc6 sys/arch/amd64/amd64/trap.c:577 Xsyscall() at Xsyscall+0x128 end of kernel end trace frame: 0x83f028d1f0, count: -15 ddb{1}> show registers rdi 0 rsi 0x80000 acpi_pdirpa+0x6be71 rbp 0xffff80003a987c00 rbx 0xfffffd800433ee00 rdx 0xffff80000127fb40 rcx 0xffff800033d5a7c8 rax 0x7ffff acpi_pdirpa+0x6be70 r8 0xffff80003a987ae0 r9 0x8080808080808080 r10 0x54d6f3be7d60588f r11 0xff08333afa193058 r12 0 r13 0xfffffd8003b56f00 r14 0x3 r15 0xffffffff rip 0xffffffff82a6fbd5 db_enter+0x25 cs 0x8 rflags 0x246 rsp 0xffff80003a987bf0 ss 0x10 db_enter+0x25: addq $0x8,%rsp ddb{1}> show proc PROC (syz-executor) tid=47866 pid=9504 tcnt=2 stat=onproc flags process=10 proc=4000000 runpri=32, usrpri=50, slppri=32, nice=20 wchan=0x0, wmesg=, ps_single=0x0 scnt=0 ecnt=0 forw=0xffffffffffffffff, list=0xffff800033d5b980,0xffff8000ffff6ce0 process=0xffff800033d586d8 user=0xffff80003a983000, vmspace=0xfffffd806ec8d1d0 estcpu=36, cpticks=1, pctcpu=0.0, user=0, sys=1, intr=0 ddb{1}> ps PID TID PPID UID S FLAGS WAIT COMMAND 49291 501824 60045 0 2 0 syz-executor 9504 6436 48837 -1 2 0x10 syz-executor * 9504 47866 48837 -1 7 0x4000010 syz-executor 56446 413688 71388 0 2 0 syz-executor 56446 137256 71388 0 3 0x4000080 fsleep syz-executor 37557 333078 14538 0 7 0 syz-executor 37557 370428 14538 0 2 0x4000000 syz-executor 25707 198424 90420 0 2 0 syz-executor 25707 503001 90420 0 2 0x4000000 syz-executor 51050 484269 91471 0 2 0 syz-executor 51050 65008 91471 0 3 0x4000080 ttyin syz-executor 8611 64954 56254 60928 2 0x10 syz-executor 8611 277877 56254 60928 3 0x4000090 kqread syz-executor 8611 449512 56254 60928 3 0x4000090 fsleep syz-executor 70618 322328 0 0 3 0x14200 bored sosplice 91471 417834 91609 0 3 0x82 nanoslp syz-executor 60045 267094 91609 0 3 0x82 nanoslp syz-executor 56254 146932 91609 0 3 0x82 nanoslp syz-executor 14538 14434 91609 0 3 0x82 nanoslp syz-executor 71388 459513 91609 0 3 0x82 nanoslp syz-executor 48837 316875 91609 0 3 0x82 nanoslp syz-executor 90420 268336 91609 0 3 0x82 nanoslp syz-executor 659 226825 91609 0 3 0x82 wait syz-executor 91609 46558 43919 0 3 0x82 kqread syz-executor 43919 358161 36923 0 3 0x10008a sigsusp ksh 36923 42192 72659 0 3 0x98 kqread sshd-session 72659 382375 37985 0 3 0x92 kqread sshd-session 89769 402150 1 0 3 0x100083 ttyin getty 37985 386048 1 0 3 0x88 kqread sshd 2572 365816 86847 74 3 0x1100092 bpf pflogd 86847 389643 1 0 3 0x80 sbwait pflogd 83704 6658 74567 73 3 0x1100090 kqread syslogd 74567 151887 1 0 3 0x100082 sbwait syslogd 78986 57470 1 0 3 0x100080 kqread resolvd 14327 447901 54283 77 3 0x100092 kqread dhcpleased 70492 332598 54283 77 3 0x100092 kqread dhcpleased 54283 326668 1 0 3 0x80 kqread dhcpleased 39447 491676 0 0 3 0x14200 bored smr 72445 144859 0 0 2 0x14200 zerothread 58637 208199 0 0 3 0x14200 aiodoned aiodoned 69373 97859 0 0 3 0x14200 syncer update 79733 121267 0 0 3 0x14200 cleaner cleaner 47550 319264 0 0 3 0x14200 reaper reaper 69996 160888 0 0 3 0x14200 pgdaemon pagedaemon 21665 216298 0 0 3 0x14200 bored viomb 7508 113333 0 0 3 0x40014200 acpi0 acpi0 74068 351756 0 0 3 0x40014200 idle1 37830 521853 0 0 3 0x14200 bored softnet3 63278 461520 0 0 3 0x14200 bored softnet2 11287 98112 0 0 3 0x14200 bored softnet1 94045 444887 0 0 2 0x14200 softnet0 98703 303926 0 0 3 0x14200 bored systqmp 85299 12532 0 0 3 0x14200 bored systq 31512 383654 0 0 3 0x14200 tmoslp softclockmp 43118 72323 0 0 3 0x40014200 tmoslp softclock 52586 406860 0 0 3 0x40014200 idle0 1 432236 0 0 3 0x82 wait init 0 0 -1 0 3 0x10200 scheduler swapper ddb{1}> show all locks Process 9504 (syz-executor) thread 0xffff800033d5a7c8 (47866) exclusive kernel_lock &kernel_lock r = 0 (0xffffffff8360db10) #0 witness_lock+0x5bb stacktrace_save sys/sys/stacktrace.h:37 [inline] #0 witness_lock+0x5bb sys/kern/subr_witness.c:1155 #1 unp_connect+0x26c sys/kern/uipc_usrreq.c:868 #2 uipc_dgram_send+0x131 sys/kern/uipc_usrreq.c:607 #3 sosend+0x804 #4 sendit+0x721 sys/kern/uipc_syscalls.c:779 #5 sys_sendmsg+0x246 sys/kern/uipc_syscalls.c:597 #6 syscall+0xbc6 mi_syscall sys/sys/syscall_mi.h:176 [inline] #6 syscall+0xbc6 sys/arch/amd64/amd64/trap.c:577 #7 Xsyscall+0x128 exclusive rwlock sbufsnd r = 0 (0xffff800001316748) #0 witness_lock+0x5bb stacktrace_save sys/sys/stacktrace.h:37 [inline] #0 witness_lock+0x5bb sys/kern/subr_witness.c:1155 #1 rw_do_enter_write+0x3ea sys/kern/kern_rwlock.c:316 #2 sblock+0xb7 sys/kern/uipc_socket2.c:537 #3 sosend+0x2e2 sys/kern/uipc_socket.c:625 #4 sendit+0x721 sys/kern/uipc_syscalls.c:779 #5 sys_sendmsg+0x246 sys/kern/uipc_syscalls.c:597 #6 syscall+0xbc6 mi_syscall sys/sys/syscall_mi.h:176 [inline] #6 syscall+0xbc6 sys/arch/amd64/amd64/trap.c:577 #7 Xsyscall+0x128 ddb{1}> show malloc Type InUse MemUse HighUse Limit Requests Type Lim devbuf 10202 11028K 11419K 166960K 11694 0 pcb 19 14K 16K 166960K 148 0 rtable 202 5K 6K 166960K 376 0 pf 37 18K 19K 166960K 66 0 ifaddr 43 7K 7K 166960K 59 0 ifgroup 57 2K 2K 166960K 78 0 sysctl 4 1K 1K 166960K 4 0 counters 66 36K 36K 166960K 78 0 ioctlops 0 0K 4K 166960K 1502 0 iov 0 0K 12K 166960K 46 0 mount 1 1K 1K 166960K 1 0 log 0 0K 0K 166960K 4 0 vnodes 1457 92K 92K 166960K 1647 0 UFS quota 1 32K 32K 166960K 1 0 UFS mount 5 36K 36K 166960K 5 0 shm 2 1K 5K 166960K 9 0 VM map 2 1K 1K 166960K 2 0 sem 10 0K 0K 166960K 15 0 dirhash 12 2K 2K 166960K 21 0 ACPI 1690 195K 286K 166960K 12468 0 file desc 18 65K 93K 166960K 391 0 sigio 0 0K 0K 166960K 3 0 proc 72 91K 128K 166960K 559 0 subproc 72 4K 4K 166960K 72 0 NFS srvsock 1 0K 0K 166960K 1 0 NFS daemon 1 16K 16K 166960K 1 0 ip_moptions 0 0K 0K 166960K 34 0 in_multi 92 7K 7K 166960K 115 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 85 387K 387K 166960K 85 0 exec 0 0K 1K 166960K 389 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 217 72K 77K 166960K 5131 0 UVM aobj 81 5K 5K 166960K 82 0 pinsyscall 43 86K 103K 166960K 1499 0 memdesc 1 4K 4K 166960K 1 0 crypto data 1 1K 1K 166960K 1 0 ip6_options 0 0K 0K 166960K 8 0 NDP 13 0K 2K 166960K 38 0 temp 51 6894K 7018K 166960K 7757 0 kqueue 14 22K 28K 166960K 74 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 24 0 0 1 0 1 1 0 8 0 rtpcb 120 113 0 110 3 0 3 3 0 8 2 rtentry 112 120 0 26 4 0 4 4 0 8 0 unpcb 144 266 0 245 2 0 2 2 0 8 1 syncache 336 3 0 3 1 1 0 1 0 8 0 tcpcb 808 47 0 43 2 0 2 2 0 8 1 arp 120 20 0 0 1 0 1 1 0 8 0 inpcb 376 336 0 326 8 0 8 8 0 8 7 nd6 136 26 0 4 1 0 1 1 0 8 0 kcovpl 48 8 0 0 1 0 1 1 0 8 0 ppxss 1168 4 0 3 1 0 1 1 0 8 0 pffrag 232 1 0 0 1 0 1 1 0 482 0 pffrnode 88 1 0 0 1 0 1 1 0 8 0 pffrent 40 1 0 0 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 30 0 0 1 0 1 1 0 8 0 pfstkey 128 30 0 0 1 0 1 1 0 8 0 pfstate 376 29 0 0 3 0 3 3 0 8 0 pfrule 1344 23 0 18 2 1 1 2 0 8 0 art_heap8 4096 1 0 0 1 0 1 1 0 8 0 art_heap4 256 505 0 102 29 0 29 29 0 8 2 art_table 32 506 0 102 4 0 4 4 0 8 0 art_node 16 118 0 34 1 0 1 1 0 8 0 sysvmsgpl 40 11 0 7 1 0 1 1 0 8 0 semupl 112 1 0 1 1 0 1 1 0 8 1 semapl 112 11 0 3 1 0 1 1 0 8 0 shmpl 112 79 0 1 3 0 3 3 0 8 0 dirhash 1024 23 0 6 3 0 3 3 0 8 0 dino2pl 256 2009 0 504 95 0 95 95 0 8 0 ffsino 280 2009 0 504 109 0 109 109 0 8 0 nchpl 144 2574 0 887 63 0 63 63 0 8 0 uvmvnodes 80 2319 0 0 48 0 48 48 0 8 0 vnodes 216 2319 0 0 129 0 129 129 0 8 0 namei 1024 7997 0 7996 2 0 2 2 0 8 1 percpumem 16 53 0 6 1 0 1 1 0 8 0 kstatmem 264 38 0 12 2 0 2 2 0 8 0 acpiwqpl 32 2 0 2 1 0 1 1 1 8 1 scsiplug 72 1 0 1 1 0 1 1 0 8 1 scxspl 216 7841 0 7841 4 2 2 2 1 8 2 plimitpl 152 98 0 80 1 0 1 1 0 8 0 sigapl 424 699 0 648 8 1 7 7 0 8 1 futexpl 64 4029 0 4027 1 0 1 1 0 8 0 knotepl 120 374 0 0 12 0 12 12 0 8 0 kqueuepl 216 91 0 79 1 0 1 1 0 8 0 pipepl 328 130 0 103 3 0 3 3 0 8 0 fdescpl 504 680 0 648 5 0 5 5 0 8 0 filepl 152 3128 0 2903 14 0 14 14 0 8 4 lockfpl 104 97 0 95 1 0 1 1 0 8 0 lockfspl 48 41 0 39 1 0 1 1 0 8 0 sessionpl 144 22 0 13 1 0 1 1 0 8 0 pgrppl 48 32 0 15 1 0 1 1 0 8 0 ucredpl 104 390 0 374 1 0 1 1 0 8 0 zombiepl 144 649 0 648 1 0 1 1 0 8 0 processpl 1168 699 0 648 5 0 5 5 0 8 1 procpl 648 1123 0 1065 7 1 6 6 0 8 0 sosppl 168 4 0 4 1 0 1 1 0 8 1 sockpl 688 719 0 686 10 0 10 10 0 8 6 mcl64k 65536 2 0 0 1 0 1 1 0 8 0 mcl8k 8192 2 0 0 1 0 1 1 0 8 0 mcl4k 4096 110 0 0 14 0 14 14 0 8 0 mcl2k 2048 20 0 0 3 0 3 3 0 8 0 mtagpl 96 20 0 0 1 0 1 1 0 8 0 mbufpl 256 216 0 0 14 0 14 14 0 8 0 bufpl 280 4008 0 130 277 0 277 277 0 8 0 anonpl 24 126577 0 123223 47 1 46 46 0 185 20 amapchunkpl 152 16068 0 15600 27 0 27 27 0 158 7 amappl16 200 2533 0 2502 17 2 15 15 0 8 11 amappl15 192 21 0 21 1 1 0 1 0 8 0 amappl14 184 114 0 101 1 0 1 1 0 8 0 amappl13 176 8 0 8 2 1 1 1 0 8 1 amappl12 168 1327 0 1296 4 1 3 3 0 8 0 amappl11 160 52 0 38 1 0 1 1 0 8 0 amappl10 152 9 0 9 1 1 0 1 0 8 0 amappl9 144 248 0 248 1 1 0 1 0 8 0 amappl8 136 39 0 37 1 0 1 1 0 8 0 amappl7 128 106 0 94 1 0 1 1 0 8 0 amappl6 120 185 0 181 1 0 1 1 0 8 0 amappl5 112 126 0 116 1 0 1 1 0 8 0 amappl4 104 317 0 299 1 0 1 1 0 8 0 amappl3 96 2955 0 2845 4 0 4 4 0 8 0 amappl2 88 648 0 586 2 0 2 2 0 8 0 amappl1 80 8556 0 7982 14 0 14 14 0 8 1 amappl 88 4735 0 4573 5 0 5 5 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 7 0 7 2 1 1 1 0 8 1 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 81 0 1 2 0 2 2 0 8 0 uaddrrnd 24 680 0 648 1 0 1 1 0 8 0 uaddrbest 32 2 0 0 1 0 1 1 0 8 0 uaddr 24 680 0 648 1 0 1 1 0 8 0 vmmpekpl 168 7029 0 6994 2 0 2 2 0 8 0 vmmpepl 168 47228 0 45342 94 0 94 94 0 357 9 vmsppl 456 679 0 648 5 0 5 5 0 8 1 rwobjpl 64 18138 0 14823 58 0 58 58 0 8 2 pdppl 4096 1367 0 1296 101 30 71 85 0 8 0 pvpl 32 15152 0 0 123 0 123 123 0 265 0 pmappl 248 679 0 648 3 0 3 3 0 8 0 extentpl 40 55 0 38 1 0 1 1 0 8 0 phpool 112 281 0 33 8 0 8 8 0 8 0 ddb{1}> machine ddbcpu 0 Stopped at x86_ipi_db+0x27: addq $0x8,%rsp ddb{0}> trace x86_ipi_db(ffffffff834ccff0) at x86_ipi_db+0x27 sys/arch/amd64/amd64/db_interface.c:393 x86_ipi_handler() at x86_ipi_handler+0xd9 sys/arch/amd64/amd64/ipi.c:106 Xresume_lapic_ipi() at Xresume_lapic_ipi+0x27 __sanitizer_cov_trace_pc() at __sanitizer_cov_trace_pc+0x2c kd_curproc sys/dev/kcov.c:584 [inline] __sanitizer_cov_trace_pc() at __sanitizer_cov_trace_pc+0x2c sys/dev/kcov.c:153 __mp_lock(ffffffff8360d908) at __mp_lock+0x1a3 __mp_lock_spin sys/kern/kern_lock.c:113 [inline] __mp_lock(ffffffff8360d908) at __mp_lock+0x1a3 sys/kern/kern_lock.c:144 intr_handler(ffff80003a176810,ffff800000069c00) at intr_handler+0xe1 sys/arch/amd64/amd64/intr.c:553 Xintr_ioapic_edge16_untramp() at Xintr_ioapic_edge16_untramp+0x18f __sanitizer_cov_trace_pc() at __sanitizer_cov_trace_pc softintr_dispatch(0) at softintr_dispatch+0x5b sys/arch/amd64/amd64/softintr.c:88 Xsoftclock() at Xsoftclock+0x27 end of kernel end trace frame: 0x74ae122f8f50, count: -10 ddb{0}> machine ddbcpu 1 Stopped at db_enter+0x25: addq $0x8,%rsp ddb{1}> trace db_enter() at db_enter+0x25 sys/arch/amd64/amd64/db_interface.c:437 witness_checkorder(fffffd806be8e428,9,0) at witness_checkorder+0x1047 rw_do_enter_write(fffffd806be8e410,1) at rw_do_enter_write+0xb7 sys/kern/kern_rwlock.c:233 rrw_enter(fffffd806be8e410,1) at rrw_enter+0xc6 sys/kern/kern_rwlock.c:616 VOP_LOCK(fffffd805d39ca78,2001) at VOP_LOCK+0xa6 sys/kern/vfs_vops.c:524 vn_lock(fffffd805d39ca78,2001) at vn_lock+0xa4 sys/kern/vfs_vnops.c:570 vfs_lookup(ffff80003a987f88) at vfs_lookup+0x109 sys/kern/vfs_lookup.c:418 namei(ffff80003a987f88) at namei+0x7aa sys/kern/vfs_lookup.c:250 unp_connect(ffff800001316588,fffffd8060775000,ffff800033d5a7c8) at unp_connect+0x27d sys/kern/uipc_usrreq.c:868 uipc_dgram_send(ffff800001316588,fffffd8060775c00,fffffd8060775000,0) at uipc_dgram_send+0x131 sys/kern/uipc_usrreq.c:607 sosend(ffff800001316588,fffffd8060775000,ffff80003a988208,0,0,0) at sosend+0x804 sendit(ffff800033d5a7c8,3,ffff80003a988380,0,ffff80003a988440) at sendit+0x721 sys/kern/uipc_syscalls.c:779 sys_sendmsg(ffff800033d5a7c8,ffff80003a9884f0,ffff80003a988440) at sys_sendmsg+0x246 sys/kern/uipc_syscalls.c:597 syscall(ffff80003a9884f0) at syscall+0xbc6 mi_syscall sys/sys/syscall_mi.h:176 [inline] syscall(ffff80003a9884f0) at syscall+0xbc6 sys/arch/amd64/amd64/trap.c:577 Xsyscall() at Xsyscall+0x128 end of kernel end trace frame: 0x83f028d1f0, count: -15