assert "rt->rt_ifa->ifa_ifp != NULL" failed: panic: kernel diagnostic assertion "!_kernel_lock_held()" failed in kern_fo

4 views
Skip to first unread message

syzbot

unread,
Oct 8, 2019, 7:48:08 AM10/8/19
to syzkaller-o...@googlegroups.com
Hello,

syzbot found the following crash on:

HEAD commit: 0767cd88 Replace "boolean.h" with <stdbool.h>
git tree: openbsd
console output: https://syzkaller.appspot.com/x/log.txt?x=108584bf600000
kernel config: https://syzkaller.appspot.com/x/.config?x=26ca0a9c07f16a3a
dashboard link: https://syzkaller.appspot.com/bug?extid=90021eadbb40e6619e30

Unfortunately, I don't have any reproducer for this crash yet.

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+90021e...@syzkaller.appspotmail.com

panic: kernel diagnostic assertion "rt->rt_ifa->ifa_ifp != NULL" failed:
panic: kernel diagnostic assertion "!_kernel_lock_held()" failed:
file "/syzkaller/managers/multicore/kernel/sys/kern/kern_fork.c", line 690
Stopped at db_enter+0x18: addq $0x8,%rsp
TID PID UID PRFLAGS PFLAGS CPU COMMAND
410848 44732 0 0 0x4000000 0 syz-executor.0
* 26409 44732 0 0 0x4000000 1 syz-executor.0
db_enter() at db_enter+0x18 sys/arch/amd64/amd64/db_interface.c:398
panic() at panic+0x15c sys/kern/subr_prf.c:207
__assert(ffffffff82206b81,ffffffff821f2dbb,2b2,ffffffff821d687e) at
__assert+0x2b sys/kern/subr_prf.c:154
proc_trampoline_mp() at proc_trampoline_mp+0x123
end trace frame: 0x0, count: 11
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
kernel diagnostic assertion "rt->rt_ifa->ifa_ifp != NULL" failed:
file "/syzkaller/managers/multicore/kernel/sys/net/route.c", line 848
ddb{1}> trace
db_enter() at db_enter+0x18 sys/arch/amd64/amd64/db_interface.c:398
panic() at panic+0x15c sys/kern/subr_prf.c:207
__assert(ffffffff82206b81,ffffffff821f2dbb,2b2,ffffffff821d687e) at
__assert+0x2b sys/kern/subr_prf.c:154
proc_trampoline_mp() at proc_trampoline_mp+0x123
end trace frame: 0x0, count: -4
ddb{1}> show registers
rdi 0
rsi 0x1
rbp 0xffff800021c03ab0
rbx 0xffff800021c03b60
rdx 0xffff800020ab0c70
rcx 0
rax 0
r8 0xffffffff81928d4f kprintf+0x16f
r9 0x1
r10 0x25
r11 0x177b7d5c46618d4c
r12 0x3000000008
r13 0xffff800021c03ac0
r14 0x104
r15 0x1
rip 0xffffffff81f47b98 db_enter+0x18
cs 0x8
rflags 0x246
rsp 0xffff800021c03aa0
ss 0x10
db_enter+0x18: addq $0x8,%rsp
ddb{1}> show proc
PROC (syz-executor.0) pid=26409 stat=onproc
flags process=0 proc=4000000<THREAD>
pri=86, usrpri=86, nice=20
forw=0xffffffffffffffff, list=0xffff800020ab1160,0xffffffff8264b068
process=0xffff800020add180 user=0xffff800021bfe000,
vmspace=0xfffffd807f00a8a0
estcpu=36, cpticks=1, pctcpu=0.0
user=0, sys=1, intr=0
ddb{1}> ps
PID TID PPID UID S FLAGS WAIT COMMAND
44732 431901 1564 0 2 0 syz-executor.0
44732 410848 1564 0 7 0x4000000 syz-executor.0
44732 265392 1564 0 2 0x4000000 syz-executor.0
*44732 26409 1564 0 7 0x4000000 syz-executor.0
30630 274995 1039 0 2 0 syz-executor.1
30630 259430 1039 0 3 0x4000080 piperd syz-executor.1
1564 520785 87759 0 3 0x82 nanosleep syz-executor.0
1039 193953 87759 0 3 0x82 nanosleep syz-executor.1
92527 67152 1 0 3 0x100083 ttyin getty
9227 105645 0 0 3 0x14200 acct acct
44890 342006 0 0 3 0x14200 bored sosplice
87759 1681 2504 0 3 0x82 thrsleep syz-fuzzer
87759 96939 2504 0 3 0x4000082 thrsleep syz-fuzzer
87759 285110 2504 0 3 0x4000082 thrsleep syz-fuzzer
87759 296489 2504 0 3 0x4000082 thrsleep syz-fuzzer
87759 519439 2504 0 3 0x4000082 thrsleep syz-fuzzer
87759 11146 2504 0 3 0x4000082 kqread syz-fuzzer
87759 337971 2504 0 3 0x4000082 thrsleep syz-fuzzer
87759 157831 2504 0 3 0x4000082 thrsleep syz-fuzzer
87759 278310 2504 0 3 0x4000082 thrsleep syz-fuzzer
87759 413839 2504 0 3 0x4000082 thrsleep syz-fuzzer
2504 121672 48935 0 3 0x10008a pause ksh
48935 465079 56783 0 3 0x92 select sshd
56783 331203 1 0 3 0x80 select sshd
28420 52081 4666 74 3 0x100092 bpf pflogd
4666 125663 1 0 3 0x80 netio pflogd
75540 9099 7864 73 3 0x100090 kqread syslogd
7864 5242 1 0 3 0x100082 netio syslogd
75217 181272 1 77 3 0x100090 poll dhclient
50778 69867 1 0 3 0x80 poll dhclient
49380 339486 0 0 2 0x14200 zerothread
17692 500181 0 0 3 0x14200 aiodoned aiodoned
76291 139377 0 0 3 0x14200 syncer update
78107 359327 0 0 3 0x14200 cleaner cleaner
97751 105029 0 0 3 0x14200 reaper reaper
91872 66403 0 0 3 0x14200 pgdaemon pagedaemon
52281 374681 0 0 3 0x14200 bored crynlk
35709 338549 0 0 3 0x14200 bored crypto
79497 132889 0 0 3 0x40014200 acpi0 acpi0
24835 488495 0 0 3 0x40014200 idle1
58488 513251 0 0 3 0x14200 bored softnet
51799 316299 0 0 3 0x14200 bored systqmp
96284 498224 0 0 3 0x14200 bored systq
85850 368248 0 0 3 0x40014200 bored softclock
65558 85711 0 0 3 0x40014200 idle0
99810 38620 0 0 3 0x14200 bored smr
1 240149 0 0 3 0x82 wait init
0 0 -1 0 3 0x10200 scheduler swapper
ddb{1}> show all locks
Process 44732 (syz-executor.0) thread 0xffff800020ab0ee8 (410848)
exclusive rwlock netlock r = 0 (0xffffffff824df898)
#0 witness_lock+0x52e sys/kern/subr_witness.c:1163
#1 solock+0x5a sys/kern/uipc_socket2.c:282
#2 sys_connect+0x6b sys/kern/uipc_syscalls.c:362
#3 syscall+0x4a4 mi_syscall sys/sys/syscall_mi.h:92 [inline]
#3 syscall+0x4a4 sys/arch/amd64/amd64/trap.c:555
#4 Xsyscall+0x128
exclusive kernel_lock &kernel_lock r = 1 (0xffffffff826426f0)
#0 witness_lock+0x52e sys/kern/subr_witness.c:1163
#1 syscall+0x400 mi_syscall sys/sys/syscall_mi.h:83 [inline]
#1 syscall+0x400 sys/arch/amd64/amd64/trap.c:555
#2 Xsyscall+0x128
ddb{1}> show malloc
Type InUse MemUse HighUse Limit Requests Type Lim Kern Lim
devbuf 9618 7232K 9280K 78643K 51026 0 0
pcb 13 8K 8K 78643K 846 0 0
rtable 138 14K 14K 78643K 4329 0 0
ifaddr 97 25K 27K 78643K 1468 0 0
counters 39 33K 33K 78643K 39 0 0
ioctlops 0 0K 4K 78643K 1760 0 0
iov 0 0K 24K 78643K 759 0 0
mount 1 1K 1K 78643K 1 0 0
vnodes 1224 77K 78K 78643K 11788 0 0
UFS quota 1 32K 32K 78643K 1 0 0
UFS mount 5 36K 36K 78643K 5 0 0
shm 2 1K 5K 78643K 48 0 0
VM map 48 24K 24K 78643K 62 0 0
sem 12 0K 1K 78643K 6092 0 0
dirhash 12 2K 2K 78643K 12 0 0
ACPI 1808 196K 290K 78643K 12765 0 0
file desc 6 17K 25K 78643K 6815 0 0
sigio 0 0K 0K 78643K 54 0 0
proc 62 63K 95K 78643K 2008 0 0
subproc 32 2K 2K 78643K 510 0 0
NFS srvsock 1 0K 0K 78643K 1 0 0
NFS daemon 1 16K 16K 78643K 1 0 0
ip_moptions 0 0K 1K 78643K 380 0 0
in_multi 37 2K 2K 78643K 548 0 0
ether_multi 1 0K 0K 78643K 49 0 0
mrt 0 0K 0K 78643K 18 0 0
ISOFS mount 1 32K 32K 78643K 1 0 0
MSDOSFS mount 1 16K 16K 78643K 1 0 0
ttys 102 450K 450K 78643K 102 0 0
exec 0 0K 1K 78643K 1002 0 0
pagedep 1 8K 8K 78643K 1 0 0
inodedep 1 32K 32K 78643K 1 0 0
newblk 1 0K 0K 78643K 1 0 0
VM swap 7 26K 26K 78643K 7 0 0
UVM amap 186 413K 413K 78643K 22623 0 0
UVM aobj 130 6K 6K 78643K 132 0 0
memdesc 1 4K 4K 78643K 1 0 0
crypto data 1 1K 1K 78643K 1 0 0
ip6_options 0 0K 1K 78643K 927 0 0
NDP 22 0K 1K 78643K 417 0 0
temp 244 3565K 4205K 78643K 134466 0 0
kqueue 1 0K 0K 78643K 46 0 0
SYN cache 2 16K 16K 78643K 2 0 0
ddb{1}> show all pools
Name Size Requests Fail Releases Pgreq Pgrel Npage Hiwat Minpg Maxpg
Idle
arp 64 98 0 90 1 0 1 1 0
8 0
plcache 128 20 0 0 1 0 1 1 0
8 0
rtpcb 80 1015 0 1013 1 0 1 1 0
8 0
rtentry 112 513 0 462 2 0 2 2 0
8 0
unpcb 120 2344 0 2332 1 0 1 1 0
8 0
syncache 264 27 0 27 10 10 0 1 0
8 0
tcpqe 32 57 0 57 5 5 0 1 0
8 0
tcpcb 544 1548 0 1544 2 1 1 2 0
8 0
inpcb 280 13570 0 13562 12 10 2 3 0
8 1
rttmr 72 5 0 5 4 4 0 1 0
8 0
ip6q 72 2 0 2 2 2 0 1 0
8 0
ip6af 40 3 0 3 1 1 0 1 0
8 0
nd6 48 82 0 78 2 1 1 1 0
8 0
pkpcb 40 23 0 23 8 8 0 1 0
8 0
swfcl 56 4 0 0 1 0 1 1 0
8 0
ppxss 1128 268 0 268 12 11 1 1 0
8 1
pffrag 232 58 0 58 17 17 0 1 0
482 0
pffrnode 88 58 0 58 17 17 0 1 0
8 0
pffrent 40 1367 0 1367 18 18 0 1 0
8 0
pfosfp 40 846 0 423 5 0 5 5 0
8 0
pfosfpen 112 1428 0 714 21 0 21 21 0
8 0
pfstitem 24 399 0 328 1 0 1 1 0
8 0
pfstkey 112 399 0 328 4 1 3 3 0
8 0
pfstate 328 399 0 328 12 5 7 8 0
8 0
pfrule 1360 21 0 16 2 1 1 2 0
8 0
art_heap8 4096 18 0 17 12 9 3 3 0
8 2
art_heap4 256 2289 0 2025 51 34 17 21 0
8 0
art_table 32 2307 0 2042 3 0 3 3 0
8 0
art_node 16 512 0 466 1 0 1 1 0
8 0
sysvmsgpl 40 11 0 4 1 0 1 1 0
8 0
semupl 112 4 0 4 2 2 0 1 0
8 0
semapl 112 6085 0 6075 1 0 1 1 0
8 0
shmpl 112 130 0 2 4 0 4 4 0
8 0
dirhash 1024 17 0 0 3 0 3 3 0
8 0
dino1pl 128 12136 0 10713 47 0 47 47 0
8 0
ffsino 272 12136 0 10713 96 0 96 96 0
8 0
nchpl 144 22485 0 20858 61 0 61 61 0
8 0
uvmvnodes 72 6136 0 0 112 0 112 112 0
8 0
vnodes 208 6136 0 0 323 0 323 323 0
8 0
namei 1024 73678 0 73678 2 1 1 1 0
8 1
percpumem 16 30 0 0 1 0 1 1 0
8 0
vcpupl 1984 46 0 0 6 0 6 6 0
8 0
vmpool 552 60 0 14 4 0 4 4 0
8 0
scsiplug 64 5 0 5 4 4 0 1 0
8 0
scxspl 192 83664 0 83664 35 33 2 7 0
8 2
plimitpl 152 330 0 322 1 0 1 1 0
8 0
sigapl 432 6934 0 6918 3 1 2 3 0
8 0
futexpl 56 154418 0 154418 1 0 1 1 0
8 1
knotepl 112 1291 0 1271 8 7 1 3 0
8 0
kqueuepl 104 2314 0 2311 2 1 1 2 0
8 0
pipepl 112 2520 0 2497 6 4 2 2 0
8 0
fdescpl 488 6935 0 6918 3 0 3 3 0
8 0
filepl 152 56522 0 56412 27 21 6 7 0
8 1
lockfpl 104 1709 0 1708 1 0 1 1 0
8 0
lockfspl 48 587 0 586 1 0 1 1 0
8 0
sessionpl 112 49 0 38 1 0 1 1 0
8 0
pgrppl 48 91 0 80 1 0 1 1 0
8 0
ucredpl 96 6101 0 6091 1 0 1 1 0
8 0
zombiepl 144 6918 0 6918 2 1 1 1 0
8 1
processpl 896 6952 0 6918 4 0 4 4 0
8 0
procpl 632 20352 0 20305 8 3 5 5 0
8 1
srpgc 64 53 0 53 19 19 0 1 0
8 0
sosppl 128 1450 0 1450 3 2 1 1 0
8 1
sockpl 384 17001 0 16979 26 21 5 5 0
8 2
mcl64k 65536 34 0 0 3 0 3 3 0
8 0
mcl16k 16384 25 0 0 4 1 3 3 0
8 0
mcl12k 12288 25 0 0 2 0 2 2 0
8 0
mcl9k 9216 15 0 0 2 0 2 2 0
8 0
mcl8k 8192 25 0 0 4 1 3 3 0
8 0
mcl4k 4096 33 0 0 5 2 3 3 0
8 0
mcl2k2 2112 11 0 0 1 0 1 1 0
8 0
mcl2k 2048 184 0 0 19 4 15 19 0
8 0
mtagpl 80 280 0 0 6 2 4 6 0
8 0
mbufpl 256 713 0 0 41 0 41 41 0
8 0
bufpl 256 26626 0 19578 441 0 441 441 0
8 0
anonpl 16 737351 0 719734 220 133 87 91 0
124 7
amapchunkpl 152 42943 0 42800 56 44 12 13 0
158 3
amappl16 192 36214 0 35151 244 182 62 65 0
8 8
amappl15 184 563 0 563 3 3 0 1 0
8 0
amappl14 176 1990 0 1985 2 1 1 1 0
8 0
amappl13 168 1110 0 1109 3 2 1 1 0
8 0
amappl12 160 1723 0 1719 1 0 1 1 0
8 0
amappl11 152 443 0 428 1 0 1 1 0
8 0
amappl10 144 491 0 486 1 0 1 1 0
8 0
amappl9 136 1443 0 1432 1 0 1 1 0
8 0
amappl8 128 1022 0 984 3 1 2 2 0
8 0
amappl7 120 609 0 601 1 0 1 1 0
8 0
amappl6 112 404 0 395 1 0 1 1 0
8 0
amappl5 104 2099 0 2084 1 0 1 1 0
8 0
amappl4 96 6521 0 6485 1 0 1 1 0
8 0
amappl3 88 3344 0 3331 1 0 1 1 0
8 0
amappl2 80 52755 0 52665 4 2 2 3 0
8 0
amappl1 72 153238 0 152769 26 16 10 20 0
8 0
amappl 80 21145 0 21076 2 0 2 2 0
84 0
dma4096 4096 1 0 1 1 1 0 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 17 0 17 1 1 0 1 0
8 0
aobjpl 64 131 0 2 3 0 3 3 0
8 0
uaddrrnd 24 6995 0 6918 1 0 1 1 0
8 0
uaddrbest 32 2 0 0 1 0 1 1 0
8 0
uaddr 24 6995 0 6918 1 0 1 1 0
8 0
vmmpekpl 168 45322 0 45277 3 0 3 3 0
8 0
vmmpepl 168 862487 0 860002 378 236 142 144 0 357
31
vmsppl 368 6934 0 6918 2 0 2 2 0
8 0
pdppl 4096 13997 0 13910 13 1 12 12 0
8 1
pvpl 32 2034631 0 2014707 397 200 197 207 0 265
21
pmappl 232 6994 0 6932 5 1 4 4 0
8 0
extentpl 40 41 0 26 1 0 1 1 0
8 0
phpool 112 702 0 57 19 0 19 19 0
8 0


---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

Anton Lindqvist

unread,
Oct 8, 2019, 8:44:13 AM10/8/19
to syzbot, syzkaller-o...@googlegroups.com
#syz dup: assert "rt->rt_ifa->ifa_ifp != NULL" failed in route.c
Reply all
Reply to author
Forward
0 new messages