[Bug 227654] [panic] repeatable crash with lagg+vlan+em
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sat Oct 20 20:18:52 UTC 2018
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227654
--- Comment #4 from Eugene Grosbein <eugen at freebsd.org> ---
This is 100% repeatable using same command sequence under 12.0-BETA1/i386
installed with all defaults inside VirtualBox VM.
This time it says:
panic: vm_fault_hold: fault on nofault entry, addr: 0
It generates nice crashdump and reboots.
I've uploaded kernel.debug (stock one from 12.0-BETA1/i386 installation image,
18M compressed) and vmcore.0.xz (9.2MB compressed) here:
http://www.grosbein.net/freebsd/crash/20181021/
Here comes kgdb script:
Script started on Sun Oct 21 02:31:58 2018
Command: kgdb kernel.debug /var/crash/vmcore.0
GNU gdb (GDB) 8.2 [GDB v8.2 for FreeBSD]
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "i386-portbld-freebsd12.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from kernel.debug...done.
Unread portion of the kernel message buffer:
<6>em0: link state changed to DOWN
<6>vlan61: link state changed to DOWN
panic: vm_fault_hold: fault on nofault entry, addr: 0
cpuid = 0
time = 1540062884
KDB: stack backtrace:
#0 0x112d01f at kdb_backtrace+0x4f
#1 0x10e03f7 at vpanic+0x147
#2 0x10e02ab at panic+0x1b
#3 0x14289c5 at vm_fault_hold+0x2a45
#4 0x1425f2e at vm_fault+0x5e
#5 0x16b6ef7 at trap_pfault+0xc7
#6 0x16b64af at trap+0x3cf
#7 0xffc0315d at PTDpde+0x4165
#8 0x11e0122 at ether_output+0x6a2
#9 0x124887d at arprequest+0x44d
#10 0x12493f9 at arp_ifinit+0x59
#11 0x124c5bb at arp_handle_ifllchange+0x3b
#12 0x11db275 at if_setlladdr+0x275
#13 0x11eb900 at vlan_lladdr_fn+0x30
#14 0x113eba9 at taskqueue_run_locked+0x189
#15 0x113fd57 at taskqueue_thread_loop+0x97
#16 0x10a1af1 at fork_exit+0x71
#17 0xffc033ba at PTDpde+0x43c2
Uptime: 7m21s
Physical memory: 2019 MB
Dumping 84 MB: 69 53 37 21 5
__curthread () at ./machine/pcpu.h:226
226 ./machine/pcpu.h: No such file or directory.
(kgdb) add-kld if_tap.ko
add symbol table from file "if_tap.ko.debug" at
.rodata_addr = 0x18c0c134
set_sysctl_set_addr = 0x18c0c4e0
set_modmetadata_set_addr = 0x18c0c4f8
.note.gnu.build-id_addr = 0x18c0c500
.dynsym_addr = 0x18c0c548
.gnu.hash_addr = 0x18c0cb18
.hash_addr = 0x18c0cb58
.dynstr_addr = 0x18c0ce48
.rel.dyn_addr = 0x18c0d348
.text_addr = 0x18c0f000
.data_addr = 0x18c12000
set_sysinit_set_addr = 0x18c12270
set_sysuninit_set_addr = 0x18c12278
.dynamic_addr = 0x18c13000
.bss_addr = 0x18c14000
(y or n) y
Reading symbols from if_tap.ko.debug...done.
(kgdb) add-kld if_lagg.ko
add symbol table from file "if_lagg.ko.debug" at
.rodata_addr = 0x18c15138
set_sysctl_set_addr = 0x18c16038
set_modmetadata_set_addr = 0x18c16054
.note.gnu.build-id_addr = 0x18c16060
.dynsym_addr = 0x18c160a8
.gnu.hash_addr = 0x18c16798
.hash_addr = 0x18c167e8
.dynstr_addr = 0x18c16b68
.rel.dyn_addr = 0x18c171e8
.text_addr = 0x18c1a000
.data_addr = 0x18c24000
set_vnet_addr = 0x18c24270
set_sysinit_set_addr = 0x18c242a0
set_sysuninit_set_addr = 0x18c242ac
.dynamic_addr = 0x18c25000
.bss_addr = 0x18c26000
(y or n) y
Reading symbols from if_lagg.ko.debug...done.
(kgdb) bt full
#0 __curthread () at ./machine/pcpu.h:226
td = <optimized out>
#1 doadump (textdump=<optimized out>) at /usr/src/sys/kern/kern_shutdown.c:366
error = <error reading variable error (Cannot access memory at address
0x0)>
coredump = <optimized out>
#2 0x010e0073 in kern_reboot (howto=260)
at /usr/src/sys/kern/kern_shutdown.c:446
once = <error reading variable once (Cannot access memory at address
0x0)>
#3 0x010e0444 in vpanic (
fmt=0x179ab2c "%s: fault on nofault entry, addr: %#lx",
ap=0x16a1462c "U\327p\001") at /usr/src/sys/kern/kern_shutdown.c:872
buf = "vm_fault_hold: fault on nofault entry, addr: 0", '\000' <repeats
209 times>
td = 0x7369700
newpanic = <error reading variable newpanic (Cannot access memory at
address 0x1)>
bootopt = 260
other_cpus = <optimized out>
#4 0x010e02ab in panic (
fmt=0x179ab2c "%s: fault on nofault entry, addr: %#lx")
at /usr/src/sys/kern/kern_shutdown.c:799
ap = <unavailable>
--Type <RET> for more, q to quit, c to continue without paging--c
#5 0x014289c5 in vm_fault_hold (map=0x2bd5000, vaddr=0, fault_type=<optimized
out>, fault_flags=0, m_hold=0x0) at /usr/src/sys/vm/vm_fault.c:586
hardfault = <optimized out>
nera = <optimized out>
faultcount = <optimized out>
wired = 0
prot = 7 '\a'
result = 0
rv = <optimized out>
behind = <optimized out>
ahead = <optimized out>
error = <optimized out>
locked = <optimized out>
vp = <optimized out>
fs = <optimized out>
dset = <optimized out>
next_object = <optimized out>
alloc_req = <optimized out>
era = <optimized out>
behavior = <optimized out>
cluster_offset = <optimized out>
e_start = <optimized out>
e_end = <optimized out>
is_first_object_locked = <error reading variable is_first_object_locked
(Cannot access memory at address 0x0)>
retry_prot = <optimized out>
retry_pindex = <optimized out>
retry_object = <optimized out>
dead = <optimized out>
#6 0x01425f2e in vm_fault (map=0x2bd5000, vaddr=0, fault_type=1 '\001',
fault_flags=0) at /usr/src/sys/vm/vm_fault.c:536
td = 0x7369700
result = <optimized out>
#7 0x016b6ef7 in trap_pfault (frame=0x16a14894, usermode=0, eva=28) at
/usr/src/sys/i386/i386/trap.c:882
td = 0x7369700
p = <optimized out>
va = <optimized out>
ftype = <unavailable>
rv = <optimized out>
map = <optimized out>
#8 0x016b64af in trap (frame=0x16a14894) at /usr/src/sys/i386/i386/trap.c:519
td = <optimized out>
dr6 = <optimized out>
addr = <optimized out>
ucode = <optimized out>
signo = <optimized out>
p = 0x206c1e4 <proc0>
type = 12
eva = 28
ksi = <optimized out>
#9 0xffc0315d in ?? ()
No symbol table info available.
#10 0x16a14894 in ?? ()
No symbol table info available.
#11 0x011e0122 in ether_output (ifp=0x7240400, m=<unavailable>, dst=0x16a149e8,
ro=0x16a149a8) at /usr/src/sys/net/if_ethersubr.c:435
linkhdr = "\001\000\000\000\000\227\066\a\\I\241\026\372\251"
error = <optimized out>
pflags = 0
addref = 0
phdr = <optimized out>
hlen = <optimized out>
lle = <optimized out>
eh = <optimized out>
t = <optimized out>
#12 0x0124887d in arprequest (ifp=0x7240400, sip=0x16a14a40, tip=0x16a14a40,
enaddr=0x1911d94a "") at /usr/src/sys/netinet/if_ether.c:428
linkhdr =
"\377\377\377\377\377\377\000\275\024\247\377\000\b\006\000\000\000\000\000\000\000\000\000"
carpaddr = <optimized out>
m = <optimized out>
ah = <optimized out>
linkhdrsize = <error reading variable linkhdrsize (Cannot access memory
at address 0x18)>
error = 0
ro = {ro_rt = 0x0, ro_lle = 0x0, ro_prepend = 0x16a149d0
"\377\377\377\377\377\377", ro_plen = 14, ro_flags = 0, ro_mtu = 0, spare = 0,
ro_dst = {sa_len = 0 '\000', sa_family = 0 '\000', sa_data = '\000' <repeats 13
times>}}
sa = {sa_len = 2 '\002', sa_family = 35 '#', sa_data =
"\000\000J\331\021\031\000\000\000\000\000\227\066\a"}
#13 0x012493f9 in arp_announce_ifaddr (ifp=0x7240400, addr=...,
enaddr=<unavailable>) at /usr/src/sys/netinet/if_ether.c:1436
No locals.
#14 arp_ifinit (ifp=0x7240400, ifa=0x1911d200) at
/usr/src/sys/netinet/if_ether.c:1423
dst_in = 0x1911d250
dst = 0x1911d250
#15 0x0124c5bb in arp_handle_ifllchange (ifp=0x7240400) at
/usr/src/sys/netinet/if_ether.c:1450
ifa = 0x1911d200
#16 0x011db275 in if_setlladdr (ifp=0x7240400, lladdr=0x1911d94a "", len=6) at
/usr/src/sys/net/if.c:3867
_ep = <optimized out>
_t = <optimized out>
_el = <optimized out>
ifa = <optimized out>
sdl = <optimized out>
nep_et = {datap = {0x0, 0x16a26c80, 0xdeadbeef}, datai = {1}}
ifr = <optimized out>
#17 0x011eb900 in vlan_lladdr_fn (arg=0x1911ab00, pending=1) at
/usr/src/sys/net/if_vlan.c:1306
ifv = 0x1911ab00
ifp = <unavailable>
#18 0x0113eba9 in taskqueue_run_locked (queue=0x736d600) at
/usr/src/sys/kern/subr_taskqueue.c:465
tb_first = <optimized out>
pending = 1
task = 0x1911ab28
tb = <optimized out>
#19 0x0113fd57 in taskqueue_thread_loop (arg=0x206f918 <taskqueue_thread>) at
/usr/src/sys/kern/subr_taskqueue.c:757
tqp = <optimized out>
tq = 0x736d600
#20 0x010a1af1 in fork_exit (callout=0x113fcc0 <taskqueue_thread_loop>,
arg=0x206f918 <taskqueue_thread>, frame=0x16a14ba8) at
/usr/src/sys/kern/kern_fork.c:1057
td = 0x7369700
p = 0x206c1e4 <proc0>
dtd = <optimized out>
#21 0xffc033ba in ?? ()
No symbol table info available.
(kgdb) frame 11
#11 0x011e0122 in ether_output (ifp=0x7240400, m=<unavailable>,
dst=0x16a149e8, ro=0x16a149a8) at /usr/src/sys/net/if_ethersubr.c:435
435 return ether_output_frame(ifp, m);
(kgdb) p *ifp
$1 = {if_link = {cstqe_next = 0x0}, if_clones = {le_next = 0x0,
le_prev = 0x757ff1c}, if_groups = {cstqh_first = 0x757ec70,
cstqh_last = 0x756d1a4}, if_alloctype = 6 '\006', if_softc = 0x1911ab00,
if_llsoftc = 0x0, if_l2com = 0x0, if_dname = 0x1b08e5c <vlanname> "vlan",
if_dunit = 61, if_index = 6, if_index_reserved = 0,
if_xname = "vlan61\000\000\000\000\000\000\000\000\000",
if_description = 0x0, if_flags = 34819, if_drv_flags = 64,
if_capabilities = 3, if_capenable = 3, if_linkmib = 0x1911ab14,
if_linkmiblen = 20, if_refcount = 1, if_type = 135 '\207',
if_addrlen = 6 '\006', if_hdrlen = 4 '\004', if_link_state = 1 '\001',
if_mtu = 1500, if_metric = 0, if_baudrate = 0, if_hwassist = 6,
if_epoch = 421, if_lastchange = {tv_sec = 1540062864, tv_usec = 921826},
if_snd = {ifq_head = 0x0, ifq_tail = 0x0, ifq_len = 0, ifq_maxlen = 50,
ifq_mtx = {lock_object = {lo_name = 0x7240430 "vlan61",
lo_flags = 16973824, lo_data = 0, lo_witness = 0x0}, mtx_lock = 0},
ifq_drv_head = 0x0, ifq_drv_tail = 0x0, ifq_drv_len = 0,
ifq_drv_maxlen = 0, altq_type = 0, altq_flags = 0, altq_disc = 0x0,
altq_ifp = 0x7240400, altq_enqueue = 0x0, altq_dequeue = 0x0,
altq_request = 0x0, altq_clfier = 0x0, altq_classify = 0x0,
altq_tbr = 0x0, altq_cdnr = 0x0}, if_linktask = {ta_link = {
stqe_next = 0x0}, ta_pending = 0, ta_priority = 0,
ta_func = 0x11d5460 <do_link_state_change>, ta_context = 0x7240400},
if_addr_lock = {lock_object = {lo_name = 0x1704959 "if_addr_lock",
lo_flags = 16973824, lo_data = 0, lo_witness = 0x0}, mtx_lock = 0},
--Type <RET> for more, q to quit, c to continue without paging-- c
if_addrhead = {cstqh_first = 0x1911d900, cstqh_last = 0x1911d214},
if_multiaddrs = {cstqh_first = 0x1911ac80, cstqh_last = 0x1911a0c0}, if_amcount
= 0, if_addr = 0x1911d900, if_hw_addr = 0x757ebd0, if_broadcastaddr = 0x1b08424
<etherbroadcastaddr> "\377\377\377\377\377\377", if_afdata_lock = {lock_object
= {lo_name = 0x1771f6b "if_afdata", lo_flags = 16973824, lo_data = 0,
lo_witness = 0x0}, mtx_lock = 0}, if_afdata = {0x0, 0x0, 0x757ece0, 0x0
<repeats 25 times>, 0x74cff80, 0x0 <repeats 13 times>}, if_afdata_initialized =
2, if_fib = 0, if_vnet = 0x7017060, if_home_vnet = 0x7017060, if_vlantrunk =
0x0, if_bpf = 0x1911aa80, if_pcount = 0, if_bridge = 0x0, if_lagg = 0x0,
if_pf_kif = 0x0, if_carp = 0x0, if_label = 0x0, if_netmap = 0x0, if_output =
0x11dfa80 <ether_output>, if_input = 0x11e0720 <ether_input>, if_bridge_input =
0x0, if_bridge_output = 0x0, if_bridge_linkstate = 0x0, if_start = 0x0,
if_ioctl = 0x11ea700 <vlan_ioctl>, if_init = 0x11ea470 <vlan_init>,
if_resolvemulti = 0x11e0780 <ether_resolvemulti>, if_qflush = 0x11ea6f0
<vlan_qflush>, if_transmit = 0x11ea480 <vlan_transmit>, if_reassign = 0x11e0980
<ether_reassign>, if_get_counter = 0x11d5720 <if_get_counter_default>,
if_requestencap = 0x11e08b0 <ether_requestencap>, if_counters = {0x16b61000,
0x16b61010, 0x16b61020, 0x16b61030, 0x16b61040, 0x16b61050, 0x16b61060,
0x16b61070, 0x16b61080, 0x16b61090, 0x16b610a0, 0x16b610b0}, if_hw_tsomax =
65518, if_hw_tsomaxsegcount = 35, if_hw_tsomaxsegsize = 2048, if_snd_tag_alloc
= 0x0, if_snd_tag_modify = 0x0, if_snd_tag_query = 0x0, if_snd_tag_free = 0x0,
if_pcp = 0 '\000', if_netdump_methods = 0x0, if_epoch_ctx = {data = {0x0,
0x0}}, if_addr_et = {datap = {0x0, 0x0, 0x0}, datai = {0}}, if_maddr_et =
{datap = {0x0, 0x0, 0x0}, datai = {0}}, if_ispare = {0, 0, 0, 0}}
(kgdb) p m
$2 = <unavailable>
(kgdb) l
430 if (m == NULL)
431 return (0);
432 }
433
434 /* Continue with link-layer output */
435 return ether_output_frame(ifp, m);
436 }
437
438 static bool
439 ether_set_pcp(struct mbuf **mp, struct ifnet *ifp, uint8_t pcp)
(kgdb) p ifp->if_type
$4 = 135 '\207'
(kgdb) p ifp->if_transmit
$5 = (if_transmit_fn_t) 0x11ea480 <vlan_transmit>
(kgdb) p *((struct ifvlan *)ifp->if_softc)->ifv_trunk->parent
$8 = {if_link = {cstqe_next = 0x757d000}, if_clones = {le_next = 0x0,
le_prev = 0x0}, if_groups = {cstqh_first = 0x74fe980,
cstqh_last = 0x74fe984}, if_alloctype = 6 '\006', if_softc = 0x752a000,
if_llsoftc = 0x0, if_l2com = 0x0, if_dname = 0x70444b0 "em", if_dunit = 0,
if_index = 1, if_index_reserved = 0,
if_xname = "em0", '\000' <repeats 12 times>, if_description = 0x0,
if_flags = 34819, if_drv_flags = 64, if_capabilities = 8468635,
if_capenable = 8454299, if_linkmib = 0x0, if_linkmiblen = 0,
if_refcount = 4, if_type = 161 '\241', if_addrlen = 6 '\006',
if_hdrlen = 18 '\022', if_link_state = 1 '\001', if_mtu = 1500,
if_metric = 0, if_baudrate = 0, if_hwassist = 6, if_epoch = 1,
if_lastchange = {tv_sec = 1540062449, tv_usec = 317821}, if_snd = {
ifq_head = 0x0, ifq_tail = 0x0, ifq_len = 0, ifq_maxlen = 1023, ifq_mtx = {
lock_object = {lo_name = 0x752b430 "em0", lo_flags = 16973824,
lo_data = 0, lo_witness = 0x0}, mtx_lock = 0}, ifq_drv_head = 0x0,
ifq_drv_tail = 0x0, ifq_drv_len = 0, ifq_drv_maxlen = 1023, altq_type = 0,
altq_flags = 1, altq_disc = 0x0, altq_ifp = 0x752b400, altq_enqueue = 0x0,
altq_dequeue = 0x0, altq_request = 0x0, altq_clfier = 0x0,
altq_classify = 0x0, altq_tbr = 0x0, altq_cdnr = 0x0}, if_linktask = {
ta_link = {stqe_next = 0x0}, ta_pending = 0, ta_priority = 0,
ta_func = 0x11d5460 <do_link_state_change>, ta_context = 0x752b400},
if_addr_lock = {lock_object = {lo_name = 0x1704959 "if_addr_lock",
lo_flags = 16973824, lo_data = 0, lo_witness = 0x0},
mtx_lock = 129987456}, if_addrhead = {cstqh_first = 0x74e0c00,
--Type <RET> for more, q to quit, c to continue without paging--q
cstqh_last = Quit
Command exit status: 0
Script done on Sun Oct 21 02:55:39 2018
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the freebsd-stable
mailing list