Date: Fri, 18 Oct 2002 09:10:06 -0400 (EDT) From: Chris BeHanna <behanna@zbzoom.net> To: FreeBSD-Stable <stable@freebsd.org> Subject: FFS Panic in 4.7 Message-ID: <20021018090248.U667-300000@topperwein.dyndns.org>
index | next in thread | raw e-mail
[-- Attachment #1 --]
This transpired while doing video capture from a WinTV board using
fxtv while capturing to a RAID-5 volume hanging from an Adaptec 2400A,
if that matters. Sources were supped at
cvsup started on Mon Sep 23 16:59:21 EDT 2002
cvsup finished on Mon Sep 23 17:04:14 EDT 2002
The triggering event was an attempt to dereference a null vnode
pointer at /usr/src/sys/ufs/ffs/ffs_vfsops.c, line 996. I've attached
my kernel config and a dmesg.
uname -a reports
FreeBSD topperwein.pennasoft.com 4.7-RC FreeBSD 4.7-RC #0: Wed Oct 16 21:54:28 EDT 2002 behanna@topperwein.pennasoft.com:/raid0/usr/src/sys/TOPPERWEIN i386
And the traceback is:
#0 dumpsys () at /usr/src/sys/kern/kern_shutdown.c:487
487 if (dumping++) {
(kgdb) bt
#0 dumpsys () at /usr/src/sys/kern/kern_shutdown.c:487
#1 0xc01970c8 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:316
#2 0xc0197515 in panic (fmt=0xc03547ec "%s")
at /usr/src/sys/kern/kern_shutdown.c:595
#3 0xc02f3bcc in trap_fatal (frame=0xddce3d48, eva=999176615)
at /usr/src/sys/i386/i386/trap.c:974
#4 0xc02f3861 in trap_pfault (frame=0xddce3d48, usermode=0, eva=999176615)
at /usr/src/sys/i386/i386/trap.c:867
#5 0xc02f33f3 in trap (frame={tf_fs = 16, tf_es = 16, tf_ds = 16,
tf_edi = -566508864, tf_esi = 2, tf_ebp = -573686344,
tf_isp = -573686412, tf_ebx = -522631936, tf_edx = -1049692672,
tf_ecx = -869697664, tf_eax = 999176567, tf_trapno = 12, tf_err = 0,
tf_eip = -1071135144, tf_cs = 8, tf_eflags = 66050,
tf_esp = -1049692672, tf_ss = 0}) at /usr/src/sys/i386/i386/trap.c:466
#6 0xc027c658 in ffs_sync (mp=0xc16ef600, waitfor=2, cred=0xc15a1d80,
p=0xc03c24a0) at /usr/src/sys/ufs/ffs/ffs_vfsops.c:996
#7 0xc01c7f6b in sync (p=0xc03c24a0, uap=0x0)
at /usr/src/sys/kern/vfs_syscalls.c:576
#8 0xc0196e83 in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:235
#9 0xc0197515 in panic (fmt=0xc03547ec "%s")
at /usr/src/sys/kern/kern_shutdown.c:595
#10 0xc02f3bcc in trap_fatal (frame=0xddce3ebc, eva=999176615)
at /usr/src/sys/i386/i386/trap.c:974
#11 0xc02f3861 in trap_pfault (frame=0xddce3ebc, usermode=0, eva=999176615)
at /usr/src/sys/i386/i386/trap.c:867
#12 0xc02f33f3 in trap (frame={tf_fs = 16, tf_es = 16, tf_ds = 16,
tf_edi = -566508864, tf_esi = 3, tf_ebp = -573685972,
tf_isp = -573686040, tf_ebx = -522631936, tf_edx = -1049692672,
tf_ecx = -869697664, tf_eax = 999176567, tf_trapno = 12, tf_err = 0,
tf_eip = -1071135144, tf_cs = 8, tf_eflags = 66050, tf_esp = 0,
tf_ss = -1049692672}) at /usr/src/sys/i386/i386/trap.c:466
#13 0xc027c658 in ffs_sync (mp=0xc16ef600, waitfor=3, cred=0xc15a1d80,
p=0xcc297780) at /usr/src/sys/ufs/ffs/ffs_vfsops.c:996
#14 0xc01c7292 in sync_fsync (ap=0xddce3f7c)
at /usr/src/sys/kern/vfs_subr.c:2972
#15 0xc01c5817 in sched_sync () at vnode_if.h:558
(kgdb) frame 6
#6 0xc027c658 in ffs_sync (mp=0xc16ef600, waitfor=2, cred=0xc15a1d80,
p=0xc03c24a0) at /usr/src/sys/ufs/ffs/ffs_vfsops.c:996
996 if (vp->v_type == VNON || ((ip->i_flag &
(kgdb) p vp
$1 = (struct vnode *) 0x0
To my naïve eyes, it looks like mntvnode_slock is insufficient to
"keep things stable enough for a quick test," as described in the
comment. That being the case, I'm not exactly sure how you would fix
this efficiently. The dumb thoguht of adding an "if (vp)" is probably
not sufficient, given that that test is performed at the beginning of
the for loop, yet the machine crashed anyway on a NULL pointer
reference.
--
Chris BeHanna http://www.pennasoft.com
Principal Consultant
PennaSoft Corporation
chris@pennasoft.com
[-- Attachment #2 --]
a0:cc:d4:0a:6d
miibus0: <MII bus> on dc0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
xl0: <3Com 3c905B-TX Fast Etherlink XL> port 0xc000-0xc07f mem 0xdd004000-0xdd00407f irq 5 at device 13.0 on pci0
xl0: Ethernet address: 00:10:5a:00:a9:20
miibus1: <MII bus> on xl0
xlphy0: <3Com internal media interface> on miibus1
xlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
pcm0: <Creative CT5880-C> port 0xc400-0xc43f irq 11 at device 14.0 on pci0
ahc_pci0: <Adaptec 3950B Ultra2 SCSI adapter> port 0xc800-0xc8ff mem 0xdd005000-0xdd005fff irq 11 at device 15.0 on pci0
aic7896/97: Ultra2 Wide Channel A, SCSI Id=7, 32/253 SCBs
ahc_pci1: <Adaptec 3950B Ultra2 SCSI adapter> port 0xcc00-0xccff mem 0xdd006000-0xdd006fff irq 11 at device 15.1 on pci0
aic7896/97: Ultra2 Wide Channel B, SCSI Id=7, 32/253 SCBs
orm0: <Option ROMs> at iomem 0xc0000-0xcbfff,0xcc000-0xd1fff,0xd2000-0xd77ff on isa0
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model IntelliMouse, device ID 3
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
ppc0: <Parallel port> at port 0x378-0x37f flags 0x21 on isa0
ppc0: Generic chipset (NIBBLE-only) in NIBBLE mode
ppbus0: IEEE1284 device found /NIBBLE/PS2/ECP
Probing for PnP devices on ppbus0:
ppbus0: <Lexmark International Lexmark Optra SC 1275> PRINTER PCL 6 Emulation, PostScript Level 2 Emulation, NPAP, PJL
lpt0: <Printer> on ppbus0
lpt0: Polled port
ppi0: <Parallel I/O> on ppbus0
unknown: <PNP0000> can't assign resources
unknown: <PNP0303> can't assign resources
unknown: <PNP0f13> can't assign resources
unknown: <PNP0700> can't assign resources
unknown: <PNP0501> can't assign resources
sio1: <16550A-compatible COM port> at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
unknown: <PNP0400> can't assign resources
IPv6 packet filtering initialized, logging limited to 100 packets/entry
IP packet filtering initialized, divert enabled, rule-based forwarding enabled, default to deny, logging limited to 10 packets/entry by default
ad0: 42934MB <WDC WD450AA-00BAA0> [87233/16/63] at ata0-master UDMA66
acd0: DVD-ROM <HITACHI GD-2000> at ata1-master WDMA2
Waiting 10 seconds for SCSI devices to settle
da0 at asr0 bus 0 target 0 lun 0
da0: <ADAPTEC RAID-5 370L> Fixed Direct Access SCSI-2 device
da0: Tagged Queueing Enabled
da0: 343320MB (703119360 512 byte sectors: 255H 63S/T 43767C)
Mounting root from ufs:/dev/ad0a
cd0 at ahc1 bus 0 target 6 lun 0
cd0: <HP CD-Writer+ 9200 1.0c> Removable CD-ROM SCSI-4 device
cd0: 10.000MB/s transfers (10.000MHz, offset 15)
cd0: Attempt to query device size failed: NOT READY, Medium not present
da1 at ahc0 bus 0 target 1 lun 0
da1: <IBM-PSG DNES-309170W !# SAHR> Fixed Direct Access SCSI-3 device
da1: 80.000MB/s transfers (40.000MHz, offset 30, 16bit), Tagged Queueing Enabled
da1: 8678MB (17774160 512 byte sectors: 255H 63S/T 1106C)
da2 at ahc0 bus 0 target 8 lun 0
da2: <IBM-PSG DNES-309170W !# SAHR> Fixed Direct Access SCSI-3 device
da2: 80.000MB/s transfers (40.000MHz, offset 30, 16bit), Tagged Queueing Enabled
da2: 8678MB (17774160 512 byte sectors: 255H 63S/T 1106C)
WARNING: / was not properly dismounted
md1: Malloc disk
md2: Malloc disk
WARNING: R/W mount of /usr denied. Filesystem is not clean - run fsck
WARNING: R/W mount of /export denied. Filesystem is not clean - run fsck
md3: Malloc disk
md4: Malloc disk
vinum: updating configuration from /dev/da2s1a
vinum: updating configuration from /dev/da1s1a
[-- Attachment #3 --]
#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
# http://www.FreeBSD.org/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ./LINT configuration file. If you are
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.7 2000/07/13 16:13:46 imp Exp $
machine i386
#cpu I386_CPU
#cpu I486_CPU
#cpu I586_CPU
cpu I686_CPU
ident TOPPERWEIN
#maxusers 128
maxusers 0
options CPU_ENABLE_SSE #Streaming SIMD Extensions
options CPU_ATHLON_SSE_HACK
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
options DDB #Enable kernel debugger (turn off for
#production kernels)
options DDB_UNATTENDED
#options GDB_REMOTE_CHAT
#options MATH_EMULATE #Support for x87 emulation
options INET #InterNETworking
options INET6 #IPv6 communications protocols
options FFS #Berkeley Fast Filesystem
options FFS_ROOT #FFS usable as root device [keep this!]
options SOFTUPDATES #Enable FFS soft updates support
options MFS #Memory Filesystem
options MD_ROOT #MD is a potential root device
options NFS #Network Filesystem
options NFS_ROOT #NFS usable as root device, NFS required
options MSDOSFS #MSDOS Filesystem
options CD9660 #ISO 9660 Filesystem
options CD9660_ROOT #CD-ROM usable as root, CD9660 required
options FDESC #File descriptor filesystem
options PROCFS #Process filesystem
#options NTFS #NT filesystem
#options KERNFS #Kernel filesystem
#options SMBFS #SMB/CIFS
#options UMAPFS #uid mapping filesystem
options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
#options COMPAT_LINUX #Run Linux binaries
options SCSI_DELAY=10000 #Delay (in ms) before probing SCSI
options UCONSOLE #Allow users to grab the console
options USERCONFIG #boot -c editor
options VISUAL_USERCONFIG #visual boot -c editor
options KTRACE #ktrace(1) support
options SYSVSHM #SYSV-style shared memory
options SYSVMSG #SYSV-style message queues
options SYSVSEM #SYSV-style semaphores
options P1003_1B #Posix P1003_1B real-time extensions
options _KPOSIX_PRIORITY_SCHEDULING
options ICMP_BANDLIM #Rate limit bad replies
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options INCLUDE_CONFIG_FILE # Include this file in kernel
options PNPBIOS # might toggle this off to see if it helps X
#options NMBCLUSTERS=4096 # Band-aid to get longer uptime
options MAXDSIZ="(1024*1024*1024)" # max. proc. memsize
options MAXSSIZ="(1024*1024*1024)" # max. proc. stack size
options DFLDSIZ="(1024*1024*1024)" # def. max. proc. size
options USER_LDT # Allow i386 ldt for WINE
options UFS_DIRHASH
#
# Network Security Options
#
#options IPSEC #IP security
#options IPSEC_ESP #IP security (crypto; define w/ IPSEC)
options RANDOM_IP_ID
options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE #print information about dropped packets
options IPFIREWALL_FORWARD #enable transparent proxy support
options IPFIREWALL_VERBOSE_LIMIT=10 #limit verbosity
#options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default
options IPV6FIREWALL #firewall for IPv6
options IPV6FIREWALL_VERBOSE
options IPV6FIREWALL_VERBOSE_LIMIT=100
#options IPV6FIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT #divert sockets
#options IPFILTER #ipfilter support
#options IPFILTER_LOG #ipfilter logging
options IPSTEALTH #support for stealth forwarding
#options NETSMB
#options NETSMBCRYPTO
#options LIBMCHAIN
#options LIBICONV
#options DUMMYNET # bandwidth limiter, see dummynet(4)
#options BRIDGE # bridge between NICs, see bridge(4)
#
# SMB bus
#
# System Management Bus support is provided by the 'smbus' device.
# Access to the SMBus device is via the 'smb' device (/dev/smb*),
# which is a child of the 'smbus' device.
#
# Supported devices:
# smb standard io through /dev/smb*
#
# Supported SMB interfaces:
# iicsmb I2C to SMB bridge with any iicbus interface
# intpm Intel PIIX4 Power Management Unit
# alpm Acer Aladdin-IV/V/Pro2 Power Management Unit
# ichsmb Intel ICH SMBus controller chips (82801AA, 82801AB, 82801BA)
#
device smbus0 # Bus support, required for smb below.
device iicbus0
device iicbb0
device intpm0
device bktr
device alpm
#device ichsmb
device smb0 at smbus?
#
# I2C Bus
#
# Philips i2c bus support is provided by the `iicbus' device.
#
# Supported devices:
# ic i2c network interface
# iic i2c standard io
# iicsmb i2c to smb bridge. Allow i2c i/o with smb commands.
#
# Supported interfaces:
# pcf Philips PCF8584 ISA-bus controller
# bktr brooktree848 I2C software interface
#
# Other:
# iicbb generic I2C bit-banging code (needed by lpbb, bktr)
#
#device iicbus # Bus support, required for ic/iic/iicsmb below.
#device iicbb
device ic
device iic
device iicsmb # smb over i2c bridge
device bktr # brooktree848 I2C hardware interface
#
# Console options
#
options SC_ALT_MOUSE_IMAGE # simplified mouse cursor in text mode
options SC_HISTORY_SIZE=200 # number of history buffer lines
options SC_DISABLE_REBOOT # disable ctl-alt-del reboot sequence
options SC_PIXEL_MODE # add support for the raster text mode
options VESA
# To make an SMP kernel, the next two are needed
#options SMP # Symmetric MultiProcessor Kernel
#options APIC_IO # Symmetric (APIC) I/O
#
# AGP
#
#device agp
device isa
device eisa
device pci
# Floppy drives
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
device fd1 at fdc0 drive 1
# Toshiba Libretto Y-E floppy drive should use this instead of above.
#device fdc0
# ATA and ATAPI devices
device ata0 at isa? port IO_WD1 irq 14
device ata1 at isa? port IO_WD2 irq 15
device ata
device atadisk # ATA disk drives
device atapicd # ATAPI CDROM drives
device atapifd # ATAPI floppy drives
device atapist # ATAPI tape drives
options ATA_STATIC_ID #Static device numbering
# SCSI Controllers
#device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
#device amd # AMD 53C974 (Teckram DC-390(T))
#device dpt # DPT Smartcache - See LINT for options!
#device isp # Qlogic family
#device ncr # NCR/Symbios Logic
#device sym # NCR/Symbios Logic (newer chipsets)
#options SYM_SETUP_LP_PROBE_MAP=0x40
# Allow ncr to attach legacy NCR devices when
# both sym and ncr are configured
#device adv0 at isa?
device adw
device bt0 at isa?
device aha0 at isa?
device aic0 at isa?
# SCSI peripherals
device scbus # SCSI bus (required)
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
# RAID controllers
#device ida # Compaq Smart RAID
#device amr # AMI MegaRAID
#device mlx # Mylex DAC960 family
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc0 at isa? port IO_KBD
#device atkbd0 at atkbdc? irq 1 flags 0x1
device atkbd0 at atkbdc? irq 1
device psm0 at atkbdc? irq 12
device vga0 at isa?
# splash screen/screen saver
pseudo-device splash
# syscons is the default console driver, resembling an SCO console
device sc0 at isa? flags 0x100
# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device vt0 at isa?
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options PCVT_SCANSET=2 # IBM keyboards are non-std
# Floating point support - do not disable.
device npx0 at nexus? port IO_NPX irq 13
# Power management support (see LINT for more options)
#device apm0 at nexus? disable flags 0x20 # Advanced Power Management
device apm0
# PCCARD (PCMCIA) support
#device card
#device pcic0 at isa? irq 10 port 0x3e0 iomem 0xd0000
#device pcic1 at isa? irq 11 port 0x3e2 iomem 0xd4000 disable
# Serial (COM) ports
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
#device sio1 at isa? disable port IO_COM2 irq 3
#device sio2 at isa? port IO_COM3 irq 3
#device sio3 at isa? disable port IO_COM4 irq 9
#device nmdm # Null modem terminal driver
# Parallel port
#device ppc0 at isa? port? irq 3
# Force NIBBLE mode and disable use of an IRQ
device ppc0 at isa? port? flags 0x21
device ppbus # Parallel port bus (required)
device lpt # Printer
#device plip # TCP/IP over parallel
device ppi # Parallel port interface device
#device vpo # Requires scbus and da
# PCI Ethernet NICs.
#device de # DEC/Intel DC21x4x (``Tulip'')
#device txp # 3Com 3cR990 ("Typhoon")
#device fxp # Intel EtherExpress PRO/100B (82557, 82558)
#device tx # SMC 9432TX (83c170 ``EPIC'')
#device vx # 3Com 3c590, 3c595 (``Vortex'')
#device wx # Intel Gigabit Ethernet Card (``Wiseman'')
# PCI Ethernet NICs that use the common MII bus controller code.
device miibus # MII bus support
device dc # DEC/Intel 21143 and various workalikes
#device rl # RealTek 8129/8139
#device sf # Adaptec AIC-6915 (``Starfire'')
#device sis # Silicon Integrated Systems SiS 900/SiS 7016
#device ste # Sundance ST201 (D-Link DFE-550TX)
#device tl # Texas Instruments ThunderLAN
#device vr # VIA Rhine, Rhine II
#device wb # Winbond W89C840F
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
# ISA Ethernet NICs.
# 'device ed' requires 'device miius'
#device ed0 at isa? port 0x280 irq 10 iomem 0xd8000
#device ex
#device ep
#device fe0 at isa? port 0x300
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attatement needed
# and resources will always be dynamically assigned by the pccard code.
#device wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those paremeters here.
#device an
# Xircom Ethernet
#device xe
# The probe order of these is presently determined by i386/isa/isa_compat.c.
device ie0 at isa? port 0x300 irq 10 iomem 0xd0000
device le0 at isa? port 0x300 irq 5 iomem 0xd0000
device lnc0 at isa? port 0x280 irq 10 drq 0
device cs0 at isa? port 0x300
device sn0 at isa? port 0x300 irq 10
# Pseudo devices - the number indicates how many units to allocated.
pseudo-device loop # Network loopback
pseudo-device ether # Ethernet support
pseudo-device vlan 1 # VLAN support
pseudo-device gzip # Exec gzip'd a.outs
pseudo-device sl 1 # Kernel SLIP
pseudo-device ppp 1 # Kernel PPP
pseudo-device tun 1 # Packet tunnel.
pseudo-device pty 256 # Pseudo-ttys (telnet etc)
pseudo-device md # Memory "disks"
pseudo-device gif # IPv6 and IPv4 tunneling
pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation)
#options PPP_BSDCOMP #PPP BSD-compress support
#options PPP_DEFLATE #PPP zlib/deflate/gzip support
#options PPP_FILTER #enable bpf filtering (needs bpf)
# The `bpf' pseudo-device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
pseudo-device bpf #Berkeley packet filter
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device usb # USB Bus (required)
device ugen # Generic
device uhid # "Human Interface Devices"
#device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
#device ums # Mouse
#device uscanner # Scanner
#device urio # Diamond Rio MP3 Player
# USB Ethernet, requires mii
#device aue # ADMtek USB ethernet
#device cue # CATC USB ethernet
#device kue # Kawasaki LSI USB ethernet
# Sound
device pcm
device sbc0 at isa? port 0x220 irq 7 drq 1 flags 0x15
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021018090248.U667-300000>
