Bug 146719 - [pf] [panic] PF or dumynet kernel panic
Summary: [pf] [panic] PF or dumynet kernel panic
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: Unspecified
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords: crash
Depends on:
Blocks:
 
Reported: 2010-05-19 00:00 UTC by Alexander
Modified: 2022-10-17 12:19 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander 2010-05-19 00:00:09 UTC
This machine is used as a Internet gateway with FW+Shaping (ipfw), NAT (pf), PPTP server (mpd5), freeradius, apache, mysql

Sometimes (1 crash per 1 or 2 days or even more) machine panics with:

#kgdb -c /var/crash/vmcore.7 /boot/kernel/
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...

Unread portion of the kernel message buffer:


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0xbe
fault code              = supervisor read, page not present
instruction pointer     = 0x20:0xc313e140
stack pointer           = 0x28:0xd426aa8c
frame pointer           = 0x28:0xd426ab80
code segment            = base rx0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, resume, IOPL = 0
current process         = 42 (dummynet)
trap number             = 12
panic: page fault
cpuid = 0
Uptime: 2d7h30m14s
Physical memory: 469 MB
Dumping 130 MB: 115 99 83 67 51 35 19 3

Reading symbols from /boot/kernel/acpi.ko...Reading symbols from /boot/kernel/acpi.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/acpi.ko
Reading symbols from /boot/kernel/pf.ko...Reading symbols from /boot/kernel/pf.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/pf.ko
Reading symbols from /boot/kernel/linux.ko...Reading symbols from /boot/kernel/linux.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/linux.ko
Reading symbols from /boot/kernel/ng_pppoe.ko...Reading symbols from /boot/kernel/ng_pppoe.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_pppoe.ko
Reading symbols from /boot/kernel/ng_tee.ko...Reading symbols from /boot/kernel/ng_tee.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_tee.ko
Reading symbols from /boot/kernel/ng_pptpgre.ko...Reading symbols from /boot/kernel/ng_pptpgre.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_pptpgre.ko
Reading symbols from /boot/kernel/ng_ksocket.ko...Reading symbols from /boot/kernel/ng_ksocket.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_ksocket.ko
Reading symbols from /boot/kernel/ng_iface.ko...Reading symbols from /boot/kernel/ng_iface.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_iface.ko
Reading symbols from /boot/kernel/ng_ppp.ko...Reading symbols from /boot/kernel/ng_ppp.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_ppp.ko
Reading symbols from /boot/kernel/ng_tcpmss.ko...Reading symbols from /boot/kernel/ng_tcpmss.ko.symbols...done.
done.
Loaded symbols for /boot/kernel/ng_tcpmss.ko
#0  doadump () at pcpu.h:196
196     pcpu.h: No such file or directory.
        in pcpu.h

(kgdb) list *0xc313e140
0xc313e140 is in pf_test (/usr/src/sys/modules/pf/../../contrib/pf/net/pf.c:6969).
6964    #endif
6965                    DPFPRINTF(PF_DEBUG_URGENT,
6966                        ("pf_test: kif == NULL, if_xname %s\n", ifp->if_xname));
6967                    return (PF_DROP);
6968            }
6969            if (kif->pfik_flags & PFI_IFLAG_SKIP) {
6970    #ifdef __FreeBSD__
6971                    PF_UNLOCK();
6972    #endif
6973                    return (PF_PASS);

(kgdb) backtrace
#0  doadump () at pcpu.h:196
#1  0xc065f287 in boot (howto=260) at ../../../kern/kern_shutdown.c:418
#2  0xc065f559 in panic (fmt=Variable "fmt" is not available.
) at ../../../kern/kern_shutdown.c:574
#3  0xc08c247c in trap_fatal (frame=0xd426aa4c, eva=190) at ../../../i386/i386/trap.c:950
#4  0xc08c26e0 in trap_pfault (frame=0xd426aa4c, usermode=0, eva=190)
    at ../../../i386/i386/trap.c:863
#5  0xc08c3099 in trap (frame=0xd426aa4c) at ../../../i386/i386/trap.c:541
#6  0xc08a6d9b in calltrap () at ../../../i386/i386/exception.s:166
#7  0xc313e140 in pf_test (dir=1, ifp=0xc3a6b400, m0=0xd426abc4, eh=0x0, inp=0x0)
    at /usr/src/sys/modules/pf/../../contrib/pf/net/pf.c:6969
#8  0xc31447b9 in pf_check_in (arg=0x0, m=0xd426abc4, ifp=0xc3a6b400, dir=1, inp=0x0)
    at /usr/src/sys/modules/pf/../../contrib/pf/net/pf_ioctl.c:3647
#9  0xc070a578 in pfil_run_hooks (ph=0xc0a1ada0, mp=0xd426ac1c, ifp=0xc3a6b400, dir=1, inp=0x0)
    at ../../../net/pfil.c:78
#10 0xc07379c1 in ip_input (m=0xc3dd3000) at ../../../netinet/ip_input.c:416
#11 0xc0708d15 in netisr_dispatch (num=2, m=0xc3dd3000) at ../../../net/netisr.c:185
#12 0xc0729212 in dummynet_send (m=0xc3dd3000) at ../../../netinet/ip_dummynet.c:901
#13 0xc072a786 in dummynet_task (context=0x0, pending=1) at ../../../netinet/ip_dummynet.c:877
#14 0xc0696475 in taskqueue_run (queue=0xc2e73100) at ../../../kern/subr_taskqueue.c:282
#15 0xc0696688 in taskqueue_thread_loop (arg=0xc0a1a5a8) at ../../../kern/subr_taskqueue.c:401
#16 0xc06388e9 in fork_exit (callout=0xc06965c0 <taskqueue_thread_loop>, arg=0xc0a1a5a8,
    frame=0xd426ad38) at ../../../kern/kern_fork.c:811
#17 0xc08a6e10 in fork_trampoline () at ../../../i386/i386/exception.s:271
Comment 1 Alexander 2010-05-19 00:25:57 UTC
Kernel options:

# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.474.2.17.2.1 2009/04/15 03:14:26 kensmith Exp $

#cpu            I486_CPU
#cpu            I586_CPU
cpu             I686_CPU
ident           GENERIC

# To statically compile in device wiring instead of /boot/device.hints
#hints          "GENERIC.hints"         # Default places to look for devices.

makeoptions     DEBUG=-g                # Build kernel with gdb(1) debug symbols

options         SCHED_ULE               # ULE scheduler
options         PREEMPTION              # Enable kernel thread preemption
options         INET                    # InterNETworking
#options        INET6                   # IPv6 communications protocols
options         SCTP                    # Stream Control Transmission Protocol
options         FFS                     # Berkeley Fast Filesystem
options         SOFTUPDATES             # Enable FFS soft updates support
options         UFS_ACL                 # Support for access control lists
options         UFS_DIRHASH             # Improve performance on big directories
options         UFS_GJOURNAL            # Enable gjournal-based UFS journaling
options         MD_ROOT                 # MD is a potential root device
options         NFSCLIENT               # Network Filesystem Client
options         NFSSERVER               # Network Filesystem Server
options         NFSLOCKD                # Network Lock Manager
options         NFS_ROOT                # NFS usable as /, requires NFSCLIENT
options         MSDOSFS                 # MSDOS Filesystem
options         CD9660                  # ISO 9660 Filesystem
options         PROCFS                  # Process filesystem (requires PSEUDOFS)
options         PSEUDOFS                # Pseudo-filesystem framework
options         GEOM_PART_GPT           # GUID Partition Tables.
options         GEOM_LABEL              # Provides labelization
options         COMPAT_43TTY            # BSD 4.3 TTY compat [KEEP THIS!]
options         COMPAT_FREEBSD4         # Compatible with FreeBSD4
options         COMPAT_FREEBSD5         # Compatible with FreeBSD5
options         COMPAT_FREEBSD6         # Compatible with FreeBSD6
options         SCSI_DELAY=1000         # Delay (in ms) before probing SCSI
options         KTRACE                  # ktrace(1) support
options         STACK                   # stack(9) support
options         SYSVSHM                 # SYSV-style shared memory
options         SYSVMSG                 # SYSV-style message queues
options         SYSVSEM                 # SYSV-style semaphores
options         _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options         KBD_INSTALL_CDEV        # install a CDEV entry in /dev
options         ADAPTIVE_GIANT          # Giant mutex is adaptive.
options         STOP_NMI                # Stop CPUS using NMI instead of IPI
options         AUDIT                   # Security event auditing
#options        KDTRACE_HOOKS           # Kernel DTrace hooks
options         IPFIREWALL
options         IPFIREWALL_FORWARD
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_NAT
options         IPDIVERT
options         DUMMYNET
options         NETGRAPH
options         NETGRAPH_ETHER
options         NETGRAPH_SOCKET
options         NETGRAPH_MPPC_ENCRYPTION
options         LIBALIAS
Comment 2 Mark Linimon freebsd_committer freebsd_triage 2010-05-19 10:03:36 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-net

  Over to maintainer.
Comment 3 Eitan Adler freebsd_committer freebsd_triage 2017-12-31 07:58:27 UTC
For bugs matching the following criteria:

Status: In Progress Changed: (is less than) 2014-06-01

Reset to default assignee and clear in-progress tags.

Mail being skipped
Comment 4 Graham Perrin freebsd_committer freebsd_triage 2022-10-17 12:19:13 UTC
Keyword: 

    crash

– in lieu of summary line prefix: 

    [panic]

* bulk change for the keyword
* summary lines may be edited manually (not in bulk). 

Keyword descriptions and search interface: 

    <https://bugs.freebsd.org/bugzilla/describekeywords.cgi>