Bug 248243 - FreeBsd crash when switching interface off and on again in cohesion with multicast
Summary: FreeBsd crash when switching interface off and on again in cohesion with mult...
Status: Closed Overcome By Events
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 12.1-STABLE
Hardware: amd64 Any
: --- Affects Some People
Assignee: freebsd-net (Nobody)
Depends on:
Reported: 2020-07-24 12:28 UTC by Louis
Modified: 2020-08-03 10:11 UTC (History)
1 user (show)

See Also:

freebsd_pfSense crashdump (75.00 KB, text/plain)
2020-07-25 05:44 UTC, Louis
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Louis 2020-07-24 12:28:37 UTC

I try to get PIMD running on latest pfSense release. One of the two problems I am facing is that FreeBsd as crashing as soon as I switch off and on again one of the interfaces, especially the interface being used as PIMD register_vif.

Hereby the relevant lines from "the core dump"

curthread    = 0xfffff8000439f000: pid 12 tid 100040 "swi1: netisr 2"

Tracing pid 12 tid 100040 td 0xfffff8000439f000

kdb_enter() at kdb_enter+0x37/frame 0xfffffe00004de4b0
vpanic() at vpanic+0x197/frame 0xfffffe00004de500
panic() at panic+0x43/frame 0xfffffe00004de560
trap_fatal() at trap_fatal+0x391/frame 0xfffffe00004de5c0
trap_pfault() at trap_pfault+0x4f/frame 0xfffffe00004de610
trap() at trap+0x286/frame 0xfffffe00004de720
calltrap() at calltrap+0x8/frame 0xfffffe00004de720
***--- trap 0xc, rip = 0xffffffff80e934f5, rsp = 0xfffffe00004de7f0, rbp = 

0xfffffe00004de7f0 ---***
if_inc_counter() at if_inc_counter+0x15/frame 0xfffffe00004de7f0
if_simloop() at if_simloop+0xd1/frame 0xfffffe00004de830
***pim_input() at pim_input+0x409/frame 0xfffffe00004de890***

encap_input() at encap_input+0xd1/frame 0xfffffe00004de900
encap4_input() at encap4_input+0x28/frame 0xfffffe00004de930
ip_input() at ip_input+0x168/frame 0xfffffe00004de9e0
swi_net() at swi_net+0x12b/frame 0xfffffe00004dea50
ithread_loop() at ithread_loop+0x23c/frame 0xfffffe00004deab0
fork_exit() at fork_exit+0x7e/frame 0xfffffe00004deaf0
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00004deaf0 

IMHO the problem is like this:
- pim is asking som info from underlying core
- that is translated into a trap
- the trap is not handled correctly and/or parameters are not correct
- the trap is handeld by thread 12 "swi1: netisr 2"
- which lead to a fatal crash

PS related but another problem #248103
Comment 1 Louis 2020-07-25 05:44:33 UTC
Created attachment 216754 [details]
freebsd_pfSense crashdump

Here also the version info as related to the attached dump

Dump header from device: /dev/gptid/3d9175d0-c732-11ea-90d4-6cb3113bbb90
  Architecture: amd64
  Architecture Version: 4
  Dump Length: 94208
  Blocksize: 512
  Compression: none
  Dumptime: Fri Jul 17 14:37:48 2020
  Hostname: pfSense.lan
  Magic: FreeBSD Text Dump
  Version String: FreeBSD 12.1-STABLE 1c8651b7685(devel-12) pfSense
  Panic String: page fault
  Dump Parity: 3550943803
  Bounds: 0
  Dump Status: good
Comment 2 Mark Linimon freebsd_committer freebsd_triage 2020-07-27 11:44:58 UTC
^Triage: clear maintainer-feedback flag, which only applies to ports.
Comment 3 Louis 2020-08-03 10:02:11 UTC
In the past two months the situation is very much(!) improved. I did retest I can not reproduce the crash any longer.