Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Jun 2018 09:52:11 +0200
From:      Dave Cottlehuber <dch@skunkwerks.at>
To:        freebsd-net@freebsd.org, freebsd-current@freebsd.org
Subject:   Re: unloading pf causes desktop system to freeze since ~ r335651 [coredump]
Message-ID:  <1529999531.2330685.1420550472.409ED830@webmail.messagingengine.com>
In-Reply-To: <1529960902.613046.1420067144.3B445531@webmail.messagingengine.com>
References:  <1529960902.613046.1420067144.3B445531@webmail.messagingengine.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 25 Jun 2018, at 23:08, Dave Cottlehuber wrote:
> [cross-posting for advice on general debugging + network-specific thoughts]

The HPET NMI watchdog patch was very timely - works a treat: 
https://reviews.freebsd.org/D15630

> However each time there's no crashdump, & the usual ctrl-alt-esc does't 
> work either.

I bumped my /usr/src to latest HEAD, applied HPET NMI watchdog hack &
after freezing via `service pf stop`, I was rewarded with a coredump
on next reboot; full log: https://git.io/f4Q4P

[1202] panic: Assertion !in_epoch() && !mtx_owned(&(&(*(__typeof(vnet_entry_tcbinfo)*) (((((__curthread())->td_vnet))->vnet_data_base) + (uintptr_t)&vnet_entry_tcbinfo)))->ipi_lock) failed at /usr/src/sys/netinet/tcp_input.c:802
[1202] cpuid = 4
[1202] time = 1529997533
[1202] KDB: stack backtrace:
[1202] db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe0077ddc4a0
[1202] vpanic() at vpanic+0x1a3/frame 0xfffffe0077ddc500
[1202] doadump() at doadump/frame 0xfffffe0077ddc580
[1202] tcp_input() at tcp_input+0x940/frame 0xfffffe0077ddc6c0
[1202] ip_input() at ip_input+0x3f7/frame 0xfffffe0077ddc720
[1202] netisr_dispatch_src() at netisr_dispatch_src+0xa2/frame 0xfffffe0077ddc780
[1202] ether_demux() at ether_demux+0x16e/frame 0xfffffe0077ddc7b0
[1202] ether_nh_input() at ether_nh_input+0x402/frame 0xfffffe0077ddc820
[1202] netisr_dispatch_src() at netisr_dispatch_src+0xa2/frame 0xfffffe0077ddc880
[1202] ether_input() at ether_input+0x8f/frame 0xfffffe0077ddc8c0
[1202] iflib_rxeof() at iflib_rxeof+0xcce/frame 0xfffffe0077ddc9b0
[1202] _task_fn_rx() at _task_fn_rx+0x7f/frame 0xfffffe0077ddc9f0
[1202] gtaskqueue_run_locked() at gtaskqueue_run_locked+0x139/frame 0xfffffe0077ddca40
[1202] gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0x88/frame 0xfffffe0077ddca70
[1202] fork_exit() at fork_exit+0x84/frame 0xfffffe0077ddcab0
[1202] fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0077ddcab0
[1202] --- trap 0, rip = 0, rsp = 0, rbp = 0 ---
[1202] KDB: enter: panic


db:0:kdb.enter.panic>  run lockinfo
db:1:lockinfo> show locks
db:1:lockinfo>  show alllocks
Process 12789 (h2o) thread 0xfffff8020dd4f580 (101673)
Process 17635 (pflogd) thread 0xfffff8017c91c580 (101027)
db:1:lockinfo>  show lockedvnods
Locked vnodes
db:0:kdb.enter.panic>  show pcpu
cpuid        = 4
dynamic pcpu = 0xfffffe00848dd8c0
curthread    = 0xfffff801067f2000: pid 0 tid 100029 "if_io_tqg_4"
curpcb       = 0xfffffe0077ddcb80
fpcurthread  = none
idlethread   = 0xfffff80106796000: tid 100007 "idle: cpu4"
curpmap      = 0xffffffff81ffbe08
tssp         = 0xffffffff82066ac0
commontssp   = 0xffffffff82066ac0
rsp0         = 0xfffffe0077ddcb80
gs32p        = 0xffffffff8206d6f8
ldt          = 0xffffffff8206d738
tss          = 0xffffffff8206d728
curvnet      = 0xfffff801000ca0c0
spin locks held:
db:0:kdb.enter.panic>  bt
Tracing pid 0 tid 100029 td 0xfffff801067f2000
kdb_enter() at kdb_enter+0x3b/frame 0xfffffe0077ddc4a0
vpanic() at vpanic+0x1c0/frame 0xfffffe0077ddc500
doadump() at doadump/frame 0xfffffe0077ddc580
tcp_input() at tcp_input+0x940/frame 0xfffffe0077ddc6c0
ip_input() at ip_input+0x3f7/frame 0xfffffe0077ddc720
netisr_dispatch_src() at netisr_dispatch_src+0xa2/frame 0xfffffe0077ddc780
ether_demux() at ether_demux+0x16e/frame 0xfffffe0077ddc7b0
ether_nh_input() at ether_nh_input+0x402/frame 0xfffffe0077ddc820
netisr_dispatch_src() at netisr_dispatch_src+0xa2/frame 0xfffffe0077ddc880
ether_input() at ether_input+0x8f/frame 0xfffffe0077ddc8c0
iflib_rxeof() at iflib_rxeof+0xcce/frame 0xfffffe0077ddc9b0
_task_fn_rx() at _task_fn_rx+0x7f/frame 0xfffffe0077ddc9f0
gtaskqueue_run_locked() at gtaskqueue_run_locked+0x139/frame 0xfffffe0077ddca40
gtaskqueue_thread_loop() at gtaskqueue_thread_loop+0x88/frame 0xfffffe0077ddca70
fork_exit() at fork_exit+0x84/frame 0xfffffe0077ddcab0
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0077ddcab0
--- trap 0, rip = 0, rsp = 0, rbp = 0 ---


Please keep replies just to freebsd-net@ from here on.

A+
Dave



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1529999531.2330685.1420550472.409ED830>