Hi,
I've just upgraded via bsd.rd to the 31st of July snapshot and the
crash is still 100% reproductible, please see below.
Syscall 28 is sendmsg so I'm pretty sure that the crash happens the
very first time unbound tries to send a DNS request via the PPPoE
interface. I'm using very similar PF & unbound configs on another
machine and I don't see any issues there. This APU3 box where I see
the crashes is the only one with a PPPoE interface.
Any help to troubleshoot this further is greatly appreciated.
root@APU3 ~ $ sysctl kern.version
kern.version=OpenBSD 6.1-current (GENERIC.MP) #29: Mon Jul 31 16:03:57 MDT 2017
[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
root@APU3 ~ $ ls -lsah /sbin/pfctl
1184 -r-xr-xr-x 1 root bin 562K Aug 1 00:54 /sbin/pfctl
root@APU3 ~ $ ls -lsah /usr/sbin/unbound
1504 -r-xr-xr-x 1 root bin 725K Aug 1 00:55 /usr/sbin/unbound
root@APU3 ~ $ uptime
9:19AM up 9 mins, 2 users, load averages: 0.05, 0.06, 0.01
root@APU3 ~ $ ifconfig pppoe0
pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492
description: XXXXX Internet Access
index 17 priority 0 llprio 3
dev: em0 state: session
sid: 0xfb0 PADI retries: 1 PADR retries: 0 time: 152d 05:19:04
sppp: phase network authproto pap authname "YYYYYYYYYYYYYY"
groups: pppoe OUTSIDE egress
status: active
inet6 fe80::200:0:bc19:6932%pppoe0 -> prefixlen 64 scopeid 0x11
inet 256.256.256.256 --> 257.257.257.257 netmask 0xffffffff
root@APU3 ~ $ pfctl -s rules | egrep -i ppp
match out on pppoe0 inet proto udp all nat-to (pppoe0) round-robin
match out on pppoe0 inet proto tcp all nat-to (pppoe0) round-robin
match out on pppoe0 inet proto icmp all nat-to (pppoe0) round-robin
pass out on pppoe0 inet proto udp from 0.0.0.0 to any
pass out on pppoe0 inet proto tcp from 0.0.0.0 to any flags S/SA
pass out on pppoe0 inet proto icmp from 0.0.0.0 to any
pass out on pppoe0 inet proto udp from <LOCAL_NETS> to any
pass out on pppoe0 inet proto tcp from <LOCAL_NETS> to any flags S/SA
pass out on pppoe0 inet proto icmp from <LOCAL_NETS> to any
pass in on pppoe0 inet proto tcp from ! <INET_BOGONS> to 0.0.0.0 port = 8080
keep state (source-track rule, max-src-conn 10, max-src-conn-rate 10/5,
overload <BRUTEFORCE> flush global, src.track 5) rdr-to 1.2.3.4
block drop in on pppoe0 inet from no-route to any
block drop in on pppoe0 inet from urpf-failed to any
root@APU3 ~ $ rcctl stop unbound
unbound(ok)
root@APU3 ~ $ pfctl -f /etc/pf.conf
root@APU3 ~ $ pfctl -s rules | egrep -i ppp
match out on pppoe0 inet proto udp all nat-to (pppoe0) round-robin
match out on pppoe0 inet proto tcp all nat-to (pppoe0) round-robin
match out on pppoe0 inet proto icmp all nat-to (pppoe0) round-robin
pass out on pppoe0 inet proto udp from 256.256.256.256 to any
pass out on pppoe0 inet proto tcp from 256.256.256.256 to any flags S/SA
pass out on pppoe0 inet proto icmp from 256.256.256.256 to any
pass out on pppoe0 inet proto udp from <LOCAL_NETS> to any
pass out on pppoe0 inet proto tcp from <LOCAL_NETS> to any flags S/SA
pass out on pppoe0 inet proto icmp from <LOCAL_NETS> to any
pass in on pppoe0 inet proto tcp from ! <INET_BOGONS> to 256.256.256.256 port =
8080 keep state (source-track rule, max-src-conn 10, max-src-conn-rate 10/5,
overload <BRUTEFORCE> flush global, src.track 5) rdr-to 1.2.3.4
block drop in on pppoe0 inet from no-route to any
block drop in on pppoe0 inet from urpf-failed to any
root@APU3 ~ $ rcctl start unbound
unbound(ok)
root@APU3 ~ $ WARNING: SPL NOT LOWERED ON SYSCALL 28 19 EXIT a042fe00 7
Stopped at Xsyscall+0x1d5: movl $0,%gs:0x4e0
ddb{1}>
ddb{1}> trace
Xsyscall(c31fbeffa00,c3231757380,c32d41f9b1f,0,1c,c321b7e7000) at Xsyscall+0x1d5
(null)(c320aa35e00,c32b3118e00,c31fbeffa00,c320aa35e30,0,c3231757380) at
0xc2ff21663a7
(null)(c31fbeffa00,c324dd88800,c324dd88800,c2ff216d5c0,c320aa35e00,a2c109991f039405)
at 0xc2ff216c588
(null)(c31fbeffa00,c31fbeffa00,c324dd88850,c324dd88800,c324dd88800,1781f039405)
at 0xc2ff216c398
(null)(c32b3118e00,c32a3be8ca0,a2c109991f039405,17800000000,c32a3be8ca0,10) at
0xc2ff216dcdf
(null)(10,c32b0d06398,0,c32b0d06080,c32b0d08558,a2c109991f039405) at
0xc2ff216e0cf
(null)(10,c32b0d078b8,c32b0d06298,c32b0d06080,0,801000000000) at 0xc2ff2110954
(null)(c32b0d06080,1,c32b0d06080,c32b0d06298,1,a2c109991f039405) at
0xc2ff217189f
(null)(c32b0d06030,c32b0d06080,0,c3287fc5200,4,a2c109991f039405) at
0xc2ff216f8d2
(null)(100,1,73d4,7f7ffffc3890,1,c3287fc5218) at 0xc2ff2135cbc
(null)(0,7f7ffffc3890,c325bdfb0e0,7f7ffffc3a08,c325bdfb000,a2c109991f039405) at
0xc2ff21355a0
(null)(3,7f7ffffc3a10,c3299506c00,0,c324ad77a00,a2c109991f039405) at
0xc2ff210fd14
(null)(c324ad74110,c32c727d048,c3248f5bd60,a2c109991f039405,c32c727d040,9bcfdc32b0015bc4)
at 0xc2ff2166ba6
(null)(c321e347000,1,e861,0,c2ff2281214,9bcfdc32b0015bc4) at 0xc32c70748d5
(null)(c2ff2281214,c3248f5cf80,c2ff2166211,7f7ffffc3c10,c321e347000,1) at
0xc2ff2166211
(null)(c321e347000,7f7ffffc3e3f,0,c3299506800,1,c324ad3b000) at 0xc2ff21046f8
(null)(c320d512000,3,0,7f7ffffc3d30,7f7ffffc3d38,a2c109991f039405) at
0xc2ff210ddd3
(null)(0,0,0,c2ff21010d0,c2ff2101124,7f7ffffc3d20) at 0xc2ff2101124
end trace frame: 0x0, count: -18
ddb{1}>
ddb{1}> show all procs /n
PID TID PPID UID S FLAGS WAIT COMMAND
60855 137480 69955 0 3 0x100083 nanosleep sleep
* 7693 453850 1 53 7 0x10 unbound
69955 14566 1 0 3 0x100089 pause sh
33333 331599 78678 1000 3 0x100083 ttyin ksh
78678 338753 41833 1000 3 0x90 select sshd
41833 39252 40240 0 3 0x92 poll sshd
32608 393924 1 0 3 0x100083 ttyin ksh
1499 206189 1 0 3 0x100098 poll cron
45863 335368 1 0 3 0x80 nanosleep collectd
45863 241788 1 0 3 0x4000080 fsleep collectd
45863 247444 1 0 3 0x4000080 fsleep collectd
45863 52264 1 0 3 0x4000080 fsleep collectd
45863 482143 1 0 3 0x4000080 fsleep collectd
45863 190426 1 0 3 0x4000080 fsleep collectd
45863 76525 1 0 3 0x4000080 fsleep collectd
45863 476219 1 0 3 0x4000080 fsleep collectd
45863 343934 1 0 3 0x4000080 fsleep collectd
45863 195954 1 0 3 0x4000080 fsleep collectd
45863 333794 1 0 3 0x4000080 fsleep collectd
68054 355831 1 577 3 0x90 poll openvpn
85120 396287 7944 95 3 0x100092 kqread smtpd
76111 192394 7944 103 3 0x100092 kqread smtpd
99511 404639 7944 95 3 0x100092 kqread smtpd
25702 463676 7944 95 3 0x100092 kqread smtpd
83929 6587 7944 95 3 0x100092 kqread smtpd
65544 515369 7944 95 3 0x100092 kqread smtpd
7944 242004 1 0 3 0x100080 kqread smtpd
46250 71230 1 77 3 0x100090 poll dhcpd
40240 275373 1 0 3 0x80 select sshd
93502 387522 40730 83 3 0x100092 poll ntpd
40730 88004 8417 83 3 0x100092 poll ntpd
8417 311120 1 0 3 0x100080 poll ntpd
81760 424335 97650 74 3 0x100090 bpf pflogd
97650 324727 1 0 3 0x80 netio pflogd
99708 516374 94949 73 7 0x100090 syslogd
94949 483041 1 0 3 0x100082 netio syslogd
39715 141848 25185 115 3 0x100092 kqread slaacd
69857 38925 25185 115 3 0x100092 kqread slaacd
25185 8549 1 0 3 0x80 kqread slaacd
72455 330353 0 0 3 0x14200 pgzero zerothread
5416 43026 0 0 3 0x14200 aiodoned aiodoned
16092 48096 0 0 3 0x14200 syncer update
66474 145955 0 0 3 0x14200 cleaner cleaner
61609 510514 0 0 3 0x14200 reaper reaper
92080 239404 0 0 3 0x14200 pgdaemon pagedaemon
27031 232921 0 0 3 0x14200 bored crynlk
8655 193834 0 0 3 0x14200 bored crypto
78189 36557 0 0 3 0x14200 pftm pfpurge
10281 493463 0 0 3 0x14200 bored sensors
23749 435096 0 0 3 0x14200 mmctsk sdmmc0
319 229128 0 0 3 0x14200 usbtsk usbtask
92006 310596 0 0 3 0x14200 usbatsk usbatsk
91388 419810 0 0 3 0x40014200 acpi0 acpi0
13027 445825 0 0 7 0x40014200 idle3
86346 324240 0 0 3 0x40014200 idle2
33377 473579 0 0 3 0x40014200 idle1
86612 372417 0 0 3 0x14200 bored softnet
91674 66300 0 0 3 0x14200 bored systqmp
95212 272582 0 0 3 0x14200 bored systq
56972 130113 0 0 3 0x40014200 bored softclock
58764 136829 0 0 7 0x40014200 idle0
81273 324028 0 0 3 0x14200 bored sbar
1 305559 0 0 3 0x82 wait init
0 0 -1 0 3 0x10200 scheduler swapper
ddb{1}>
ddb{1}> show all procs /o
TID PID UID PRFLAGS PFLAGS CPU COMMAND
*453850 7693 53 0x10 0 1 unbound
516374 99708 73 0x100010 0x80 2 syslogd
ddb{1}>
ddb{1}> boot reboot
panic: kernel diagnostic assertion "_kernel_lock_held()" failed: file
"/usr/src/sys/net/rtsock.c", line 374
Starting stack trace...
panic(0,ffffff00df77f900,ffff800022250e50,ffff8000000bd000,ffffff0009828018,ffff800022250ad0)
at panic+0x11b
__assert(ffffffff810c4da4,ffff800022250b60,0,ffffff00df77f900,ffff800022250e50,ffff8000000bd000)
at __assert+0x24
rtm_report(ffffffff81a9b560,ffff800022250bd8,c31fbeffa00,ffff800022250e50,ffff8000000bd000,0)
at rtm_report
if_down(ffff8000000bd000,0,ffffffff812f0d90,ffff800022250bc0,ffffffff81a9b560,ffff800022250bd8)
at if_down+0x90
if_downall(ffffffff81ac7800,4804,c7218b6358b30eee,ffffffff81ac7800,ffff800022250e50,ffff800022250c78)
at if_downall+0x51
boot(4804,0,ffffffff8105b926,ffff800022250c30,ffffffff81ac7800,4804) at
boot+0x76
reboot(0,1,ffffffff812620bb,ffff800022250c50,4804,0) at reboot+0x4b
db_boot_reboot_cmd(ffffffff812d262e,ffff800022250c60,0,1,ffffffff812620bb,ffff800022250c50)
at db_boot_reboot_cmd+0xe
db_command(1,0,0,c7218b6358b30eee,ffffffff812c22ea,ffff800022250d10) at
db_command+0x28d
db_command_loop(0,c7218b6358b30eee,ffffffff812d2971,1,0,c31fbeffa00) at
db_command_loop+0x86
db_trap(7,c7218b6358b30eee,813b6725,ffff800022250db0,ffffffff816d2734,ffff800022250db0)
at db_trap+0x134
db_ktrap(ffff800022115418,ffff800022250e50,ffff80002224c000,1,ffffffff813de3e4,ffff800022250de0)
at db_ktrap+0xe4
trap() at trap+0x3f4
--- trap (number 1) ---
end of kernel
end trace frame: 0x7f7ffffc2e80, count: 244
Xsyscall+0x1d5:
End of stack trace.
syncing disks...