witness: lock order reversal: 1st 0xffff800010fda4f0 sbufsnd (&so->so_snd.sb_lock) 2nd 0xfffffd806ade7c58 inode (&ip->i_lock) lock order [1] sbufsnd (&so->so_snd.sb_lock) -> [2] inode (&ip->i_lock) lock order data 0xffffffff8350c4d7 -> 0xffffffff8347b7ef is missing lock order [2] inode (&ip->i_lock) -> [3] sbufrcv (&so->so_rcv.sb_lock) #0 rw_do_enter_write+0xba sys/kern/kern_rwlock.c:234 #1 sblock+0xb6 sys/kern/uipc_socket2.c:536 #2 soreceive+0x27d sys/kern/uipc_socket.c:890 #3 fifo_read+0x117 sys/miscfs/fifofs/fifo_vnops.c:264 #4 VOP_READ+0x101 sys/kern/vfs_vops.c:227 #5 vn_rdwr+0x15b sys/kern/vfs_vnops.c:-1 #6 vndsetcred+0xa1 sys/dev/vnd.c:685 #7 vndioctl+0xdfc sys/dev/vnd.c:486 #8 VOP_IOCTL+0xac sys/kern/vfs_vops.c:264 #9 vn_ioctl+0xf8 sys/kern/vfs_vnops.c:537 #10 sys_ioctl+0x674 sys/kern/sys_generic.c:-1 #11 syscall+0xbd4 mi_syscall sys/sys/syscall_mi.h:176 [inline] #11 syscall+0xbd4 sys/arch/amd64/amd64/trap.c:783 #12 Xsyscall+0x128 lock order [3] sbufrcv (&so->so_rcv.sb_lock) -> [1] sbufsnd (&so->so_snd.sb_lock) #0 rw_do_enter_write+0xba sys/kern/kern_rwlock.c:234 #1 sblock+0xb6 sys/kern/uipc_socket2.c:536 #2 sosplice+0x312 sys/kern/uipc_socket.c:1347 #3 sys_setsockopt+0x2ba sys/kern/uipc_syscalls.c:1226 #4 syscall+0xbd4 mi_syscall sys/sys/syscall_mi.h:176 [inline] #4 syscall+0xbd4 sys/arch/amd64/amd64/trap.c:783 #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:438 witness_checkorder(fffffd806ade7c58,9,0) at witness_checkorder+0x10d1 sys/kern/subr_witness.c:-1 rw_do_enter_write(fffffd806ade7c40,1) at rw_do_enter_write+0xba sys/kern/kern_rwlock.c:234 rrw_enter(fffffd806ade7c40,1) at rrw_enter+0xc6 sys/kern/kern_rwlock.c:621 VOP_LOCK(fffffd806c1c0e70,2001) at VOP_LOCK+0xbd sys/kern/vfs_vops.c:527 vn_lock(fffffd806c1c0e70,2001) at vn_lock+0xa4 sys/kern/vfs_vnops.c:576 vfs_lookup(ffff800033790d90) at vfs_lookup+0x10f sys/kern/vfs_lookup.c:431 namei(ffff800033790d90) at namei+0x7c5 sys/kern/vfs_lookup.c:250 unp_connect(ffff800010fda308,fffffd806d739700,ffff80003c3ba028) at unp_connect+0x29d sys/kern/uipc_usrreq.c:872 uipc_dgram_send(ffff800010fda308,fffffd806d26e300,fffffd806d739700,0) at uipc_dgram_send+0x163 sys/kern/uipc_usrreq.c:609 sosend(ffff800010fda308,fffffd806d739700,ffff800033791018,0,0,0) at sosend+0x804 sys/kern/uipc_socket.c:-1 sendit(ffff80003c3ba028,3,ffff800033791198,0,ffff800033791250) at sendit+0x5a5 sys/kern/uipc_syscalls.c:785 sys_sendmsg(ffff80003c3ba028,ffff800033791300,ffff800033791250) at sys_sendmsg+0x246 sys/kern/uipc_syscalls.c:603 syscall(ffff800033791300) at syscall+0xbd4 mi_syscall sys/sys/syscall_mi.h:176 [inline] syscall(ffff800033791300) at syscall+0xbd4 sys/arch/amd64/amd64/trap.c:783 Xsyscall() at Xsyscall+0x128 end of kernel end trace frame: 0x7f3bac9d250, count: -15 ddb{1}> show registers rdi 0 rsi 0 rbp 0xffff800033790a00 rbx 0 rdx 0 rcx 0xffff80003c3ba028 rax 0xffff80002999dff0 r8 0xffff8000337908e0 r9 0x8080808080808080 r10 0x4f6a49e11ccce5fc r11 0x6b7cd1578a0dd57a r12 0xfffffd80040b08c0 r13 0xfffffd8004898570 r14 0x3 r15 0xffffffff83512ed3 substchar+0x5b7c rip 0xffffffff8258b975 db_enter+0x25 cs 0x8 rflags 0x246 rsp 0xffff8000337909f0 ss 0x10 db_enter+0x25: addq $0x8,%rsp ddb{1}> show proc PROC (syz-executor) tid=200651 pid=36559 tcnt=3 stat=onproc flags process=0 proc=4000000 runpri=32, usrpri=53, slppri=32, nice=20 wchan=0x0, wmesg=, ps_single=0x0 scnt=0 ecnt=0 forw=0xffffffffffffffff, list=0xffff80003c3bb4e8,0xffff80003abac560 process=0xffff80002a37d828 user=0xffff80003378c000, vmspace=0xfffffd806c6d65d0 estcpu=3, cpticks=0, pctcpu=0.0, user=0, sys=0, intr=0 ddb{1}> ps PID TID PPID UID S FLAGS WAIT COMMAND 55741 174873 22609 0 2 0 syz-executor 77783 356646 29070 0 2 0 syz-executor 47919 296112 84533 0 2 0x10 syz-executor 47919 318205 84533 0 3 0x4000090 fsleep syz-executor 36559 450067 17692 0 2 0 syz-executor *36559 200651 17692 0 7 0x4000000 syz-executor 36559 13448 17692 0 3 0x4000080 fsleep syz-executor 9248 329564 22904 0 2 0 syz-executor 63766 256249 77641 0 2 0 syz-executor 63766 105014 77641 0 3 0x4000080 fsleep syz-executor 65598 423311 65661 60929 3 0x90 nanoslp syz-executor 65598 23258 65661 60929 3 0x4000090 fsleep syz-executor 65598 167981 65661 60929 3 0x4000090 fsleep syz-executor 65598 174590 65661 60929 3 0x4000090 fsleep syz-executor 65598 363287 65661 60929 3 0x4000090 fsleep syz-executor 65661 54942 69740 0 3 0x82 nanoslp syz-executor 77641 358796 69740 0 3 0x82 nanoslp syz-executor 22609 94846 69740 0 3 0x82 nanoslp syz-executor 84533 458122 69740 0 3 0x82 nanoslp syz-executor 99366 123526 69740 0 7 0x3 syz-executor 17692 187889 69740 0 3 0x82 nanoslp syz-executor 22904 117150 69740 0 3 0x82 nanoslp syz-executor 29070 222510 69740 0 3 0x82 nanoslp syz-executor 69740 1254 17136 0 3 0x82 kqread syz-executor 17136 148570 13580 0 3 0x10008a sigsusp ksh 13580 206512 56215 0 3 0x98 kqread sshd-session 56215 327416 3608 0 3 0x92 kqread sshd-session 79633 5411 1 0 3 0x100083 ttyin getty 3608 53523 1 0 3 0x88 kqread sshd 51307 313846 46490 74 3 0x1100092 bpf pflogd 46490 55472 1 0 3 0x80 sbwait pflogd 38546 438062 62154 73 3 0x1100090 kqread syslogd 62154 327629 1 0 3 0x100082 sbwait syslogd 4240 285965 1 0 3 0x100080 kqread resolvd 38274 381907 59604 77 3 0x100092 kqread dhcpleased 9037 231041 59604 77 3 0x100092 kqread dhcpleased 59604 474994 1 0 3 0x80 kqread dhcpleased 99041 2443 0 0 3 0x14200 bored smr 67656 285723 0 0 2 0x14200 zerothread 13345 48543 0 0 3 0x14200 aiodoned aiodoned 67752 160553 0 0 3 0x14200 syncer update 58423 246736 0 0 3 0x14200 cleaner cleaner 84791 190909 0 0 3 0x14200 reaper reaper 39227 331273 0 0 3 0x14200 pgdaemon pagedaemon 18586 148514 0 0 3 0x14200 bored viomb 20816 159068 0 0 3 0x40014200 acpi0 acpi0 62270 53533 0 0 3 0x40014200 idle1 41654 438023 0 0 3 0x14200 bored softnet1 96082 452876 0 0 2 0x14200 softnet0 38634 375733 0 0 3 0x14200 bored systqmp 46665 361969 0 0 3 0x14200 bored systq 35345 493201 0 0 3 0x14200 tmoslp softclockmp 81351 188569 0 0 3 0x40014200 tmoslp softclock 6505 56348 0 0 3 0x40014200 idle0 1 16013 0 0 3 0x82 wait init 0 0 -1 0 3 0x10200 scheduler swapper ddb{1}> show all locks Process 36559 (syz-executor) thread 0xffff80003c3ba028 (200651) exclusive kernel_lock &kernel_lock r = 0 (0xffffffff83aa7580) #0 witness_lock+0x5f1 stacktrace_save sys/sys/stacktrace.h:37 [inline] #0 witness_lock+0x5f1 sys/kern/subr_witness.c:1160 #1 unp_connect+0x28c sys/kern/uipc_usrreq.c:872 #2 uipc_dgram_send+0x163 sys/kern/uipc_usrreq.c:609 #3 sosend+0x804 sys/kern/uipc_socket.c:-1 #4 sendit+0x5a5 sys/kern/uipc_syscalls.c:785 #5 sys_sendmsg+0x246 sys/kern/uipc_syscalls.c:603 #6 syscall+0xbd4 mi_syscall sys/sys/syscall_mi.h:176 [inline] #6 syscall+0xbd4 sys/arch/amd64/amd64/trap.c:783 #7 Xsyscall+0x128 exclusive rwlock sbufsnd r = 0 (0xffff800010fda4f0) #0 witness_lock+0x5f1 stacktrace_save sys/sys/stacktrace.h:37 [inline] #0 witness_lock+0x5f1 sys/kern/subr_witness.c:1160 #1 rw_do_enter_write+0x419 sys/kern/kern_rwlock.c:320 #2 sblock+0xb6 sys/kern/uipc_socket2.c:536 #3 sosend+0x2e9 sys/kern/uipc_socket.c:639 #4 sendit+0x5a5 sys/kern/uipc_syscalls.c:785 #5 sys_sendmsg+0x246 sys/kern/uipc_syscalls.c:603 #6 syscall+0xbd4 mi_syscall sys/sys/syscall_mi.h:176 [inline] #6 syscall+0xbd4 sys/arch/amd64/amd64/trap.c:783 #7 Xsyscall+0x128 ddb{1}> show malloc Type InUse MemUse HighUse Limit Requests Type Lim devbuf 11059 12089K 12092K 166960K 12158 0 pcb 17 12K 12K 166960K 26 0 rtable 237 6K 7K 166960K 359 0 pf 34 17K 18K 166960K 48 0 ifaddr 43 7K 7K 166960K 46 0 ifgroup 55 2K 2K 166960K 57 0 sysctl 1 1K 9K 166960K 5 0 counters 70 37K 37K 166960K 72 0 ioctlops 0 0K 4K 166960K 1489 0 mount 1 1K 1K 166960K 1 0 log 0 0K 0K 166960K 4 0 vnodes 1290 81K 81K 166960K 1377 0 UFS quota 1 32K 32K 166960K 1 0 UFS mount 5 36K 36K 166960K 5 0 shm 2 1K 5K 166960K 3 0 VM map 2 1K 1K 166960K 2 0 sem 7 0K 0K 166960K 7 0 dirhash 12 2K 2K 166960K 12 0 ACPI 1692 195K 286K 166960K 12470 0 file desc 17 61K 93K 166960K 166 0 proc 72 115K 164K 166960K 555 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 2 0 in_multi 99 7K 7K 166960K 99 0 ether_multi 1 0K 0K 166960K 1 0 mrt 0 0K 0K 166960K 3 0 ISOFS mount 1 32K 32K 166960K 1 0 MSDOSFS mount 1 16K 16K 166960K 1 0 ttys 49 228K 228K 166960K 49 0 exec 0 0K 1K 166960K 400 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 219 158K 169K 166960K 3332 0 UVM aobj 5 4K 4K 166960K 5 0 pinsyscall 42 84K 103K 166960K 1346 0 memdesc 1 4K 4K 166960K 1 0 crypto data 1 1K 1K 166960K 1 0 NDP 12 0K 2K 166960K 29 0 temp 36 9098K 9166K 166960K 6498 0 kqueue 13 20K 24K 166960K 27 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 39 0 36 1 0 1 1 0 8 0 rtentry 176 111 0 1 5 0 5 5 0 8 0 unpcb 144 52 0 30 1 0 1 1 0 8 0 syncache 336 3 0 3 1 0 1 1 0 8 1 tcpcb 736 19 0 15 1 0 1 1 0 8 0 arp 136 18 0 0 1 0 1 1 0 8 0 inpcb 328 92 0 85 2 0 2 2 0 8 1 nd6 152 24 0 0 1 0 1 1 0 8 0 kcovpl 48 8 0 0 1 0 1 1 0 8 0 ppxss 1192 1 0 1 1 0 1 1 0 8 1 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 19 0 0 1 0 1 1 0 8 0 pfstkey 128 19 0 0 1 0 1 1 0 8 0 pfstate 448 19 0 0 3 0 3 3 0 8 0 pfrule 1360 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 451 0 0 29 0 29 29 0 8 0 art_table 40 452 0 0 5 0 5 5 0 8 0 art_node 32 111 0 11 1 0 1 1 0 8 0 semapl 112 5 0 0 1 0 1 1 0 8 0 shmpl 112 2 0 0 1 0 1 1 0 8 0 dirhash 1024 17 0 0 3 0 3 3 0 8 0 dino2pl 256 1616 0 147 92 0 92 92 0 8 0 ffsino 296 1616 0 147 114 0 114 114 0 8 0 nchpl 144 1858 0 154 64 0 64 64 0 8 0 vnodes 216 1710 0 0 95 0 95 95 0 8 0 namei 1024 5653 0 5652 2 0 2 2 0 8 1 percpumem 16 51 0 1 1 0 1 1 0 8 0 kstatmem 264 29 0 2 2 0 2 2 0 8 0 scsiplug 72 1 0 1 1 0 1 1 0 8 1 scxspl 216 6278 0 6278 4 3 1 3 1 8 1 plimitpl 152 29 0 12 1 0 1 1 0 8 0 sigapl 424 491 0 444 7 0 7 7 0 8 1 knotepl 120 301 0 0 10 0 10 10 0 8 0 kqueuepl 224 24 0 14 1 0 1 1 0 8 0 pipepl 344 129 0 102 3 0 3 3 0 8 0 fdescpl 528 475 0 444 3 0 3 3 0 8 0 filepl 160 1692 0 1472 10 0 10 10 0 8 0 lockfpl 104 15 0 12 1 0 1 1 0 8 0 lockfspl 48 9 0 6 1 0 1 1 0 8 0 sessionpl 144 23 0 14 1 0 1 1 0 8 0 pgrppl 48 31 0 14 1 0 1 1 0 8 0 ucredpl 104 99 0 84 1 0 1 1 0 8 0 zombiepl 144 444 0 444 1 0 1 1 0 8 1 processpl 1232 491 0 444 5 0 5 5 0 8 1 procpl 664 546 0 491 6 0 6 6 0 8 0 sockpl 752 183 0 151 5 0 5 5 0 8 1 mcl64k 65536 1 0 0 1 0 1 1 0 8 0 mcl8k 8192 2 0 0 1 0 1 1 0 8 0 mcl4k 4096 133 0 0 17 0 17 17 0 8 0 mcl2k 2048 25 0 0 4 0 4 4 0 8 0 mtagpl 96 1 0 0 1 0 1 1 0 8 0 mbufpl 256 173 0 0 11 0 11 11 0 8 0 bufpl 280 2340 0 105 160 0 160 160 0 8 0 anonpl 32 3565 0 0 30 1 29 29 0 246 0 amapchunkpl 152 8345 0 7908 19 0 19 19 0 158 0 amappl16 200 272 0 253 2 0 2 2 0 8 0 amappl14 184 438 0 437 1 0 1 1 0 8 0 amappl13 176 119 0 107 1 0 1 1 0 8 0 amappl12 168 726 0 697 2 0 2 2 0 8 0 amappl11 160 2 0 2 1 1 0 1 0 8 0 amappl10 152 62 0 48 1 0 1 1 0 8 0 amappl9 144 270 0 270 1 1 0 1 0 8 0 amappl8 136 101 0 99 1 0 1 1 0 8 0 amappl7 128 144 0 131 1 0 1 1 0 8 0 amappl6 120 150 0 149 1 0 1 1 0 8 0 amappl5 112 90 0 80 1 0 1 1 0 8 0 amappl4 104 286 0 267 1 0 1 1 0 8 0 amappl3 96 1643 0 1541 3 0 3 3 0 8 0 amappl2 88 536 0 476 2 0 2 2 0 8 0 amappl1 80 9573 0 8965 15 0 15 15 0 8 1 amappl 88 2588 0 2440 4 0 4 4 0 92 0 uvmvnodes 80 100 0 0 3 0 3 3 0 8 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 4 0 0 1 0 1 1 0 8 0 uaddrrnd 24 475 0 444 1 0 1 1 0 8 0 uaddrbest 32 2 0 0 1 0 1 1 0 8 0 uaddr 24 475 0 444 1 0 1 1 0 8 0 vmmpekpl 168 5638 0 5604 2 0 2 2 0 8 0 vmmpepl 168 36545 0 34683 86 0 86 86 0 357 0 vmsppl 488 474 0 444 5 0 5 5 0 8 0 rwobjpl 80 12424 0 11415 24 0 24 24 0 8 0 pdppl 4096 957 0 888 105 24 81 85 0 8 12 pvpl 32 9504 0 0 78 1 77 78 0 265 0 pmappl 256 474 0 444 3 0 3 3 0 8 0 extentpl 40 45 0 27 1 0 1 1 0 8 0 phpool 112 279 0 27 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(ffffffff8393dff0) 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(ffffffff83aa6d80) at __mp_lock+0x192 __mp_lock_spin sys/kern/kern_lock.c:142 [inline] __mp_lock(ffffffff83aa6d80) at __mp_lock+0x192 sys/kern/kern_lock.c:173 intr_handler(ffff80002a301b20,ffff800000079600) at intr_handler+0xe9 sys/arch/amd64/amd64/intr.c:560 Xintr_ioapic_edge16_untramp() at Xintr_ioapic_edge16_untramp+0x18f __mp_lock(ffffffff83aa6d80) at __mp_lock+0x192 __mp_lock_spin sys/kern/kern_lock.c:142 [inline] __mp_lock(ffffffff83aa6d80) at __mp_lock+0x192 sys/kern/kern_lock.c:173 softintr_dispatch(0) at softintr_dispatch+0x125 sys/kern/kern_softintr.c:83 dosoftint(0) at dosoftint+0x54 sys/arch/amd64/amd64/intr.c:862 Xsoftclock() at Xsoftclock+0x27 __mp_lock(ffffffff83aa6d80) at __mp_lock+0x192 __mp_lock_spin sys/kern/kern_lock.c:142 [inline] __mp_lock(ffffffff83aa6d80) at __mp_lock+0x192 sys/kern/kern_lock.c:173 ktrsysret(ffff8000ffffd760,5,0,ffff80002a301ea0) at ktrsysret+0xde ktrwrite2 sys/kern/kern_ktrace.c:-1 [inline] ktrsysret(ffff8000ffffd760,5,0,ffff80002a301ea0) at ktrsysret+0xde sys/kern/kern_ktrace.c:209 syscall(ffff80002a301f50) at syscall+0xa51 mi_syscall_return sys/sys/syscall_mi.h:204 [inline] syscall(ffff80002a301f50) at syscall+0xa51 sys/arch/amd64/amd64/trap.c:804 Xsyscall() at Xsyscall+0x128 end of kernel end trace frame: 0x7d05e99c20d0, count: -14 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:438 witness_checkorder(fffffd806ade7c58,9,0) at witness_checkorder+0x10d1 sys/kern/subr_witness.c:-1 rw_do_enter_write(fffffd806ade7c40,1) at rw_do_enter_write+0xba sys/kern/kern_rwlock.c:234 rrw_enter(fffffd806ade7c40,1) at rrw_enter+0xc6 sys/kern/kern_rwlock.c:621 VOP_LOCK(fffffd806c1c0e70,2001) at VOP_LOCK+0xbd sys/kern/vfs_vops.c:527 vn_lock(fffffd806c1c0e70,2001) at vn_lock+0xa4 sys/kern/vfs_vnops.c:576 vfs_lookup(ffff800033790d90) at vfs_lookup+0x10f sys/kern/vfs_lookup.c:431 namei(ffff800033790d90) at namei+0x7c5 sys/kern/vfs_lookup.c:250 unp_connect(ffff800010fda308,fffffd806d739700,ffff80003c3ba028) at unp_connect+0x29d sys/kern/uipc_usrreq.c:872 uipc_dgram_send(ffff800010fda308,fffffd806d26e300,fffffd806d739700,0) at uipc_dgram_send+0x163 sys/kern/uipc_usrreq.c:609 sosend(ffff800010fda308,fffffd806d739700,ffff800033791018,0,0,0) at sosend+0x804 sys/kern/uipc_socket.c:-1 sendit(ffff80003c3ba028,3,ffff800033791198,0,ffff800033791250) at sendit+0x5a5 sys/kern/uipc_syscalls.c:785 sys_sendmsg(ffff80003c3ba028,ffff800033791300,ffff800033791250) at sys_sendmsg+0x246 sys/kern/uipc_syscalls.c:603 syscall(ffff800033791300) at syscall+0xbd4 mi_syscall sys/sys/syscall_mi.h:176 [inline] syscall(ffff800033791300) at syscall+0xbd4 sys/arch/amd64/amd64/trap.c:783 Xsyscall() at Xsyscall+0x128 end of kernel end trace frame: 0x7f3bac9d250, count: -15