witness: lock order reversal: 1st 0xffff80000128e480 sbufsnd (&so->so_snd.sb_lock) 2nd 0xfffffd806a668618 inode (&ip->i_lock) lock order [1] sbufsnd (&so->so_snd.sb_lock) -> [2] inode (&ip->i_lock) lock order data 0xffffffff8312c38c -> 0xffffffff830d64b2 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(fffffd806a668618,9,0) at witness_checkorder+0x1047 rw_do_enter_write(fffffd806a668600,1) at rw_do_enter_write+0xb7 sys/kern/kern_rwlock.c:233 rrw_enter(fffffd806a668600,1) at rrw_enter+0xc6 sys/kern/kern_rwlock.c:616 VOP_LOCK(fffffd805fbcf1b8,2001) at VOP_LOCK+0xa6 sys/kern/vfs_vops.c:524 vn_lock(fffffd805fbcf1b8,2001) at vn_lock+0xa4 sys/kern/vfs_vnops.c:570 vfs_lookup(ffff80003c5dc7d8) at vfs_lookup+0x109 sys/kern/vfs_lookup.c:418 namei(ffff80003c5dc7d8) at namei+0x7aa sys/kern/vfs_lookup.c:250 unp_connect(ffff80000128e2c0,fffffd805f7bba00,ffff80002a44e530) at unp_connect+0x27d sys/kern/uipc_usrreq.c:868 uipc_dgram_send(ffff80000128e2c0,fffffd8060274c00,fffffd805f7bba00,0) at uipc_dgram_send+0x131 sys/kern/uipc_usrreq.c:607 sosend(ffff80000128e2c0,fffffd805f7bba00,ffff80003c5dca58,0,0,0) at sosend+0x804 sendit(ffff80002a44e530,4,ffff80003c5dcbd0,0,ffff80003c5dcc90) at sendit+0x721 sys/kern/uipc_syscalls.c:779 sys_sendmsg(ffff80002a44e530,ffff80003c5dcd40,ffff80003c5dcc90) at sys_sendmsg+0x246 sys/kern/uipc_syscalls.c:597 syscall(ffff80003c5dcd40) at syscall+0xbc6 mi_syscall sys/sys/syscall_mi.h:176 [inline] syscall(ffff80003c5dcd40) at syscall+0xbc6 sys/arch/amd64/amd64/trap.c:577 Xsyscall() at Xsyscall+0x128 end of kernel end trace frame: 0x4383a049f10, count: -15 ddb{1}> show registers rdi 0 rsi 0x80000 acpi_pdirpa+0x6be71 rbp 0xffff80003c5dc450 rbx 0xfffffd800433c680 rdx 0xffff80000129db40 rcx 0xffff80002a44e530 rax 0x7ffff acpi_pdirpa+0x6be70 r8 0xffff80003c5dc330 r9 0x8080808080808080 r10 0x8f9aad05163cb4ad r11 0xe231dfa78620b847 r12 0 r13 0xfffffd8003b53f00 r14 0x3 r15 0xffffffff rip 0xffffffff8239cdf5 db_enter+0x25 cs 0x8 rflags 0x246 rsp 0xffff80003c5dc440 ss 0x10 db_enter+0x25: addq $0x8,%rsp ddb{1}> show proc PROC (syz-executor) tid=43166 pid=37893 tcnt=2 stat=onproc flags process=0 proc=4000000 runpri=32, usrpri=50, slppri=32, nice=20 wchan=0x0, wmesg=, ps_single=0x0 scnt=0 ecnt=0 forw=0xffffffffffffffff, list=0xffff80002a44e020,0xffff80002a44f470 process=0xffff80002f159018 user=0xffff80003c5d7000, vmspace=0xfffffd806bda43b0 estcpu=36, cpticks=0, pctcpu=0.0, user=0, sys=0, intr=0 ddb{1}> ps PID TID PPID UID S FLAGS WAIT COMMAND 2275 423243 35196 0 7 0 syz-executor 2275 439630 35196 0 2 0x4000000 syz-executor 37893 304847 40783 0 2 0 syz-executor *37893 43166 40783 0 7 0x4000000 syz-executor 67416 461591 11185 0 3 0x80 nanoslp syz-executor 67416 133057 11185 0 3 0x4000080 piperd syz-executor 67416 498399 11185 0 3 0x4000080 fsleep syz-executor 23356 414079 83225 0 3 0x80 nanoslp syz-executor 23356 219502 83225 0 3 0x4000080 ttyin syz-executor 23356 431215 83225 0 3 0x4000080 fsleep syz-executor 87878 44181 698 0 3 0x80 nanoslp syz-executor 87878 396409 698 0 3 0x4000080 kqread syz-executor 39074 72905 0 0 3 0x14200 acct acct 80830 345476 0 0 3 0x14200 bored sosplice 83225 172683 30203 0 3 0x82 nanoslp syz-executor 40783 369312 30203 0 3 0x82 nanoslp syz-executor 38364 293913 30203 0 3 0x82 nanoslp syz-executor 69628 427852 30203 0 3 0x82 nanoslp syz-executor 11185 83317 30203 0 3 0x82 nanoslp syz-executor 698 349063 30203 0 3 0x82 nanoslp syz-executor 68539 290007 30203 0 3 0x82 nanoslp syz-executor 35196 314936 30203 0 3 0x82 nanoslp syz-executor 30203 512151 31436 0 3 0x82 kqread syz-executor 31436 349129 19186 0 3 0x10008a sigsusp ksh 19186 13022 32720 0 3 0x98 kqread sshd-session 32720 246241 65204 0 3 0x92 kqread sshd-session 1600 376799 1 0 3 0x100083 ttyin getty 65204 122401 1 0 3 0x88 kqread sshd 44711 180368 46044 74 3 0x1100092 bpf pflogd 46044 209836 1 0 3 0x80 sbwait pflogd 10045 447472 7876 73 3 0x1100090 kqread syslogd 7876 366916 1 0 3 0x100082 sbwait syslogd 43548 294993 1 0 3 0x100080 kqread resolvd 30302 171980 87304 77 3 0x100092 kqread dhcpleased 62063 111801 87304 77 3 0x100092 kqread dhcpleased 87304 140280 1 0 3 0x80 kqread dhcpleased 2647 379924 0 0 3 0x14200 bored smr 62014 442673 0 0 3 0x14200 pgzero zerothread 86619 390640 0 0 3 0x14200 aiodoned aiodoned 35793 235196 0 0 3 0x14200 syncer update 98734 482436 0 0 3 0x14200 cleaner cleaner 52251 140562 0 0 3 0x14200 reaper reaper 16522 174269 0 0 3 0x14200 pgdaemon pagedaemon 12690 22233 0 0 3 0x14200 bored viomb 77716 305648 0 0 3 0x40014200 acpi0 acpi0 98288 246326 0 0 3 0x40014200 idle1 94019 335142 0 0 3 0x14200 bored softnet3 61661 95279 0 0 3 0x14200 bored softnet2 82689 100524 0 0 3 0x14200 bored softnet1 51414 358908 0 0 2 0x14200 softnet0 7566 451794 0 0 3 0x14200 bored systqmp 14015 522910 0 0 3 0x14200 bored systq 50042 379336 0 0 3 0x14200 tmoslp softclockmp 52148 220583 0 0 3 0x40014200 tmoslp softclock 78499 25747 0 0 3 0x40014200 idle0 1 243556 0 0 3 0x82 wait init 0 0 -1 0 3 0x10200 scheduler swapper ddb{1}> show all locks Process 37893 (syz-executor) thread 0xffff80002a44e530 (43166) exclusive kernel_lock &kernel_lock r = 0 (0xffffffff836710f8) #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 (0xffff80000128e480) #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 10212 11100K 11506K 166960K 11815 0 pcb 18 13K 14K 166960K 117 0 rtable 210 6K 6K 166960K 374 0 pf 36 18K 25K 166960K 75 0 ifaddr 39 6K 7K 166960K 59 0 ifgroup 53 2K 2K 166960K 75 0 sysctl 3 1K 1K 166960K 3 0 counters 64 36K 36K 166960K 84 0 ioctlops 0 0K 4K 166960K 1519 0 iov 0 0K 8K 166960K 24 0 mount 1 1K 1K 166960K 1 0 log 0 0K 0K 166960K 4 0 vnodes 1372 86K 87K 166960K 1732 0 UFS quota 1 32K 32K 166960K 1 0 UFS mount 5 36K 36K 166960K 5 0 shm 2 1K 9K 166960K 8 0 VM map 2 1K 1K 166960K 2 0 sem 12 0K 1K 166960K 83 0 dirhash 12 2K 2K 166960K 12 0 ACPI 1690 195K 286K 166960K 12468 0 file desc 18 65K 93K 166960K 525 0 sigio 0 0K 0K 166960K 10 0 proc 72 91K 140K 166960K 579 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 2 0K 0K 166960K 72 0 in_multi 87 6K 7K 166960K 122 0 ether_multi 1 0K 0K 166960K 3 0 mrt 2 0K 0K 166960K 3 0 ISOFS mount 1 32K 32K 166960K 1 0 MSDOSFS mount 1 16K 16K 166960K 1 0 ttys 91 413K 413K 166960K 91 0 exec 0 0K 1K 166960K 403 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 231 73K 74K 166960K 6487 0 UVM aobj 14 4K 4K 166960K 15 0 pinsyscall 43 86K 106K 166960K 1608 0 memdesc 1 4K 4K 166960K 1 0 crypto data 1 1K 1K 166960K 1 0 ip6_options 0 0K 0K 166960K 122 0 NDP 12 0K 2K 166960K 40 0 temp 51 6893K 6959K 166960K 11723 0 kqueue 15 24K 30K 166960K 87 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 52 0 49 1 0 1 1 0 8 0 rtentry 112 122 0 24 4 0 4 4 0 8 0 unpcb 144 389 0 366 7 1 6 6 0 8 4 syncache 336 4 0 4 2 1 1 1 0 8 1 tcpcb 808 234 0 230 8 0 8 8 0 8 7 arp 120 22 0 7 1 0 1 1 0 8 0 inpcb 376 586 0 573 12 3 9 12 0 8 7 nd6 136 26 0 3 1 0 1 1 0 8 0 pkpcb 40 5 0 5 1 0 1 1 0 8 1 kcovpl 48 8 0 0 1 0 1 1 0 8 0 ppxss 1168 10 0 9 1 0 1 1 0 8 0 pffrag 232 5 0 1 1 0 1 1 0 482 0 pffrnode 88 5 0 1 1 0 1 1 0 8 0 pffrent 40 38 0 34 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 pftag 88 1 0 0 1 0 1 1 0 8 0 pfstitem 24 53 0 1 1 0 1 1 0 8 0 pfstkey 128 55 0 3 2 0 2 2 0 8 0 pfstate 376 54 0 2 6 0 6 6 0 8 0 pfrule 1344 26 0 19 2 1 1 2 0 8 0 art_heap8 4096 1 0 0 1 0 1 1 0 8 0 art_heap4 256 491 0 53 30 0 30 30 0 8 0 art_table 32 492 0 53 4 0 4 4 0 8 0 art_node 16 121 0 32 1 0 1 1 0 8 0 sysvmsgpl 40 1 0 0 1 0 1 1 0 8 0 semupl 112 1 0 1 1 1 0 1 0 8 0 semapl 112 14 0 4 1 0 1 1 0 8 0 shmpl 112 12 0 1 1 0 1 1 0 8 0 dirhash 1024 17 0 0 3 0 3 3 0 8 0 dino2pl 256 2319 0 810 95 0 95 95 0 8 0 ffsino 280 2319 0 810 109 0 109 109 0 8 0 nchpl 144 3063 0 1370 63 0 63 63 0 8 0 uvmvnodes 80 2605 0 0 54 0 54 54 0 8 0 vnodes 216 2605 0 0 145 0 145 145 0 8 0 namei 1024 10489 0 10488 2 1 1 2 0 8 0 percpumem 16 56 0 10 1 0 1 1 0 8 0 kstatmem 264 44 0 20 2 0 2 2 0 8 0 acpiwqpl 32 1 0 1 1 0 1 1 1 8 1 scsiplug 72 1 0 1 1 1 0 1 0 8 0 scxspl 216 8652 0 8652 4 3 1 3 1 8 1 plimitpl 152 140 0 122 1 0 1 1 0 8 0 sigapl 424 826 0 774 7 1 6 7 0 8 0 futexpl 64 6056 0 6054 1 0 1 1 0 8 0 knotepl 120 343 0 0 11 0 11 11 0 8 0 kqueuepl 216 120 0 108 1 0 1 1 0 8 0 pipepl 328 136 0 108 3 0 3 3 0 8 0 fdescpl 504 806 0 774 5 0 5 5 0 8 1 filepl 152 4426 0 4187 17 0 17 17 0 8 4 lockfpl 104 137 0 134 1 0 1 1 0 8 0 lockfspl 48 59 0 56 1 0 1 1 0 8 0 sessionpl 144 23 0 14 1 0 1 1 0 8 0 pgrppl 48 33 0 16 1 0 1 1 0 8 0 ucredpl 104 763 0 750 1 0 1 1 0 8 0 zombiepl 144 777 0 774 1 0 1 1 0 8 0 processpl 1168 826 0 774 5 1 4 5 0 8 0 procpl 648 1528 0 1469 7 0 7 7 0 8 0 srpgc 96 4 0 4 1 0 1 1 0 8 1 sockpl 688 1037 0 999 24 3 21 21 0 8 16 mcl64k 65536 3 0 0 1 0 1 1 0 8 0 mcl8k 8192 3 0 0 1 0 1 1 0 8 0 mcl4k 4096 115 0 0 15 0 15 15 0 8 0 mcl2k2 2112 1 0 0 1 0 1 1 0 8 0 mcl2k 2048 23 0 0 3 0 3 3 0 8 0 mtagpl 96 13 0 0 1 0 1 1 0 8 0 mbufpl 256 386 0 0 25 0 25 25 0 8 0 bufpl 280 3044 0 130 209 0 209 209 0 8 0 anonpl 24 136054 0 132566 46 5 41 45 0 185 16 amapchunkpl 152 20426 0 19921 27 0 27 27 0 158 5 amappl16 200 2596 0 2559 14 8 6 14 0 8 4 amappl15 192 4 0 4 1 1 0 1 0 8 0 amappl14 184 114 0 102 1 0 1 1 0 8 0 amappl13 176 5 0 5 1 1 0 1 0 8 0 amappl12 168 1453 0 1421 4 2 2 3 0 8 0 amappl11 160 54 0 40 1 0 1 1 0 8 0 amappl10 152 14 0 14 1 1 0 1 0 8 0 amappl9 144 246 0 246 1 1 0 1 0 8 0 amappl8 136 24 0 22 1 0 1 1 0 8 0 amappl7 128 106 0 93 1 0 1 1 0 8 0 amappl6 120 184 0 179 1 0 1 1 0 8 0 amappl5 112 121 0 112 1 0 1 1 0 8 0 amappl4 104 314 0 294 1 0 1 1 0 8 0 amappl3 96 3927 0 3809 4 0 4 4 0 8 0 amappl2 88 644 0 581 2 0 2 2 0 8 0 amappl1 80 9126 0 8556 16 2 14 14 0 8 0 amappl 88 6099 0 5925 6 1 5 6 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 254 0 254 2 2 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 14 0 1 1 0 1 1 0 8 0 uaddrrnd 24 806 0 774 1 0 1 1 0 8 0 uaddrbest 32 2 0 0 1 0 1 1 0 8 0 uaddr 24 806 0 774 1 0 1 1 0 8 0 vmmpekpl 168 8267 0 8232 2 0 2 2 0 8 0 vmmpepl 168 54810 0 52887 93 2 91 92 0 357 3 vmsppl 456 805 0 774 6 1 5 5 0 8 1 rwobjpl 64 20106 0 16551 58 0 58 58 0 8 0 pdppl 4096 1619 0 1548 105 34 71 85 0 8 0 pvpl 32 14324 0 0 118 2 116 116 0 265 0 pmappl 248 805 0 774 3 0 3 3 0 8 0 extentpl 40 55 0 38 1 0 1 1 0 8 0 phpool 112 305 0 39 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(ffffffff834e3ff0) 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 __mp_lock(ffffffff83670ef0) at __mp_lock+0x192 __mp_lock_spin sys/kern/kern_lock.c:113 [inline] __mp_lock(ffffffff83670ef0) at __mp_lock+0x192 sys/kern/kern_lock.c:144 intr_handler(ffff800039180140,ffff800000069c00) at intr_handler+0xe1 sys/arch/amd64/amd64/intr.c:553 Xintr_ioapic_edge16_untramp() at Xintr_ioapic_edge16_untramp+0x18f __mp_lock(ffffffff83670ef0) at __mp_lock+0x192 __mp_lock_spin sys/kern/kern_lock.c:113 [inline] __mp_lock(ffffffff83670ef0) at __mp_lock+0x192 sys/kern/kern_lock.c:144 softintr_dispatch(0) at softintr_dispatch+0x5b sys/arch/amd64/amd64/softintr.c:88 Xsoftclock() at Xsoftclock+0x27 end of kernel end trace frame: 0x7ad0d2195c40, count: -9 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(fffffd806a668618,9,0) at witness_checkorder+0x1047 rw_do_enter_write(fffffd806a668600,1) at rw_do_enter_write+0xb7 sys/kern/kern_rwlock.c:233 rrw_enter(fffffd806a668600,1) at rrw_enter+0xc6 sys/kern/kern_rwlock.c:616 VOP_LOCK(fffffd805fbcf1b8,2001) at VOP_LOCK+0xa6 sys/kern/vfs_vops.c:524 vn_lock(fffffd805fbcf1b8,2001) at vn_lock+0xa4 sys/kern/vfs_vnops.c:570 vfs_lookup(ffff80003c5dc7d8) at vfs_lookup+0x109 sys/kern/vfs_lookup.c:418 namei(ffff80003c5dc7d8) at namei+0x7aa sys/kern/vfs_lookup.c:250 unp_connect(ffff80000128e2c0,fffffd805f7bba00,ffff80002a44e530) at unp_connect+0x27d sys/kern/uipc_usrreq.c:868 uipc_dgram_send(ffff80000128e2c0,fffffd8060274c00,fffffd805f7bba00,0) at uipc_dgram_send+0x131 sys/kern/uipc_usrreq.c:607 sosend(ffff80000128e2c0,fffffd805f7bba00,ffff80003c5dca58,0,0,0) at sosend+0x804 sendit(ffff80002a44e530,4,ffff80003c5dcbd0,0,ffff80003c5dcc90) at sendit+0x721 sys/kern/uipc_syscalls.c:779 sys_sendmsg(ffff80002a44e530,ffff80003c5dcd40,ffff80003c5dcc90) at sys_sendmsg+0x246 sys/kern/uipc_syscalls.c:597 syscall(ffff80003c5dcd40) at syscall+0xbc6 mi_syscall sys/sys/syscall_mi.h:176 [inline] syscall(ffff80003c5dcd40) at syscall+0xbc6 sys/arch/amd64/amd64/trap.c:577 Xsyscall() at Xsyscall+0x128 end of kernel end trace frame: 0x4383a049f10, count: -15