Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Nov 1999 15:00:51 +0100 (CET)
From:      assar@stacken.kth.se
To:        FreeBSD-gnats-submit@freebsd.org
Cc:        assar@stacken.kth.se
Subject:   kern/15063: "indirect pointer mismatch" in softdep
Message-ID:  <199911231400.PAA00403@mulet.e.kth.se>

next in thread | raw e-mail | index | archive | help

>Number:         15063
>Category:       kern
>Synopsis:       "indirect pointer mismatch" in softdep
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Nov 23 06:10:00 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     Assar Westerlund
>Release:        FreeBSD 4.0-CURRENT i386
>Organization:
none
>Environment:

	

FreeBSD mulet.e.kth.se 4.0-CURRENT FreeBSD 4.0-CURRENT #1: Tue Nov 23 04:18:52 CET 1999     root@mulet.e.kth.se:/usr/src/sys/compile/MULET  i386
Mark set [2 times]

kernel configuration file:

#
# MULET based on GENERIC -- Generic machine with WD/AHx/NCR/BTx family disks
#
# 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.199 1999/11/01 04:02:56 peter Exp $

machine		"i386"
cpu		"I686_CPU"
ident		MULET
maxusers	64

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

options 	INET			#InterNETworking
options 	FFS			#Berkeley Fast Filesystem
options 	FFS_ROOT		#FFS usable as root device [keep this!]
options 	MFS			#Memory Filesystem
options 	MFS_ROOT		#MFS usable as root device, "MFS" req'ed
options 	NFS			#Network Filesystem
options 	NFS_ROOT		#NFS usable as root device, "NFS" req'ed
options 	MSDOSFS			#MSDOS Filesystem
options 	"CD9660"			#ISO 9660 Filesystem
options 	"CD9660_ROOT"		#CD-ROM usable as root. "CD9660" req'ed
options 	PROCFS			#Process filesystem

# Soft updates is technique for improving file system speed and
# making abrupt shutdown less risky.  It is not enabled by default due
# to copyright restraints on the code that implement it.
#
# Read ../../ufs/ffs/README.softupdates to learn what you need to
# do to enable this.  ../../contrib/softupdates/README gives
# more details on how they actually work.
#
options 	SOFTUPDATES

options 	"COMPAT_43"		#Compatible with BSD 4.3 [KEEP THIS!]
options 	SCSI_DELAY=15000	#Be pessimistic about Joe SCSI device
options 	UCONSOLE		#Allow users to grab the console
options 	USERCONFIG		#boot -c editor
options 	VISUAL_USERCONFIG	#visual boot -c editor

options         INCLUDE_CONFIG_FILE     # Include this file in kernel

options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores

#####################################################################
# DEBUGGING OPTIONS

#
# Enable the kernel debugger.
#
options 	DDB

#
# Don't drop into DDB for a panic. Intended for unattended operation
# where you may want to drop to DDB from the console, but still want
# the machine to recover from a panic
#
options 	DDB_UNATTENDED

#
# If using GDB remote mode to debug the kernel, there's a non-standard
# extension to the remote protocol that can be used to use the serial
# port as both the debugging port and the system console.  It's non-
# standard and you're on your own if you enable it.  See also the
# "remotechat" variables in the FreeBSD specific version of gdb.
#
options 	GDB_REMOTE_CHAT

#
# KTRACE enables the system-call tracing facility ktrace(2).
#
options 	KTRACE			#kernel tracing

#
# The INVARIANTS option is used in a number of source files to enable
# extra sanity checking of internal structures.  This support is not
# enabled by default because of the extra time it would take to check
# for these conditions, which can only occur as a result of
# programming errors.
#
options 	INVARIANTS

#
# The INVARIANT_SUPPORT option makes us compile in support for
# verifying some of the internal structures.  It is a prerequisite for
# 'INVARIANTS', as enabling 'INVARIANTS' will make these functions be
# called.  The intent is that you can set 'INVARIANTS' for single
# source files (by changing the source file or specifying it on the
# command line) if you have 'INVARIANT_SUPPORT' enabled.
#
options 	INVARIANT_SUPPORT

#
# The DIAGNOSTIC option is used to enable extra debugging information
# from some parts of the kernel.  As this makes everything more noisy,
# it is disabled by default.
#
options 	DIAGNOSTIC

#
# PERFMON causes the driver for Pentium/Pentium Pro performance counters
# to be compiled.  See perfmon(4) for more information.
#
options 	PERFMON


# To make an SMP kernel, the next two are needed
#options 	SMP			# Symmetric MultiProcessor Kernel
#options 	APIC_IO			# Symmetric (APIC) I/O
# Optionally these may need tweaked, (defaults shown):
#options 	NCPU=2			# number of CPUs
#options 	NBUS=4			# number of busses
#options 	NAPIC=1			# number of IO APICs
#options 	NINTR=24		# number of INTs

controller	isa0
controller	pnp0			# PnP support for ISA
controller	eisa0
controller	pci0

# Floppy drives
controller	fdc0	at isa? port IO_FD1 irq 6 drq 2
device		fd0	at fdc0 drive 0
device		fd1	at fdc0 drive 1

# IDE controller and disks
controller	wdc0	at isa? port IO_WD1 irq 14
device		wd0	at wdc0 drive 0
device		wd1	at wdc0 drive 1

controller	wdc1	at isa? port IO_WD2 irq 15
device		wd2	at wdc1 drive 0
device		wd3	at wdc1 drive 1

# ATAPI devices on wdc?
device		wcd0		#IDE CD-ROM
device		wfd0		#IDE Floppy (e.g. LS-120)
device		wst0		#IDE Tape (e.g. Travan)

# SCSI Controllers
# A single entry for any of these controllers (ncr, ahb, ahc) is
# sufficient for any number of installed devices.
controller	ncr0		# NCR/Symbios Logic
controller	ahb0		# EISA AHA1742 family
controller	ahc0		# AHA2940 and onboard AIC7xxx devices
controller	amd0		# AMD 53C974 (Teckram DC-390(T))
controller	isp0		# Qlogic family
controller	dpt0		# DPT Smartcache - See LINT for options!

controller	adv0	at isa? port ? irq ?
controller	adw0
controller	bt0	at isa? port ? irq ?
controller	aha0	at isa? port ? irq ?

# SCSI peripherals
# Only one of each of these is needed, they are dynamically allocated.
controller	scbus0		# SCSI bus (required)
device		da0		# Direct Access (disks)
device		sa0		# Sequential Access (tape etc)
device		cd0		# CD
device		pass0		# Passthrough device (direct SCSI access)

# Proprietary or custom CD-ROM Interfaces
device		wt0	at isa? port 0x300 irq 5 drq 1
device		mcd0	at isa? port 0x300 irq 10
device		matcd0	at isa? port 0x230
device		scd0	at isa? port 0x230

# atkbdc0 controls both the keyboard and the PS/2 mouse
controller	atkbdc0	at isa? port IO_KBD
device		atkbd0	at atkbdc? irq 1
device		psm0	at atkbdc? irq 12

device		vga0	at isa? port ? conflicts

# splash screen/screen saver
pseudo-device	splash

# syscons is the default console driver, resembling an SCO console
device		sc0	at isa?

# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device		vt0	at isa?
#options 	XSERVER			# support for X server
#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 0x31 # Advanced Power Management

# PCCARD (PCMCIA) support
#controller	card0
#device		pcic0	at isa?
#device		pcic1	at isa?

# Serial (COM) ports
device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
device		sio1	at isa? port IO_COM2 irq 3
device		sio2	at isa? disable port IO_COM3 irq 5
device		sio3	at isa? disable port IO_COM4 irq 9

# Parallel port
device		ppc0	at isa? port? flags 0x40 irq 7
controller	ppbus0		# Parallel port bus (required)
device		lpt0		# Printer
device		plip0		# TCP/IP over parallel
device		ppi0		# Parallel port interface device
#controller	vpo0		# Requires scbus and da0


# PCI Ethernet NICs.
device		ax0		# ASIX AX88140A
device		de0		# DEC/Intel DC21x4x (``Tulip'')
device		fxp0		# Intel EtherExpress PRO/100B (82557, 82558)
device		pn0		# Lite-On 82c168/82c169 (``PNIC'')
device		tx0		# SMC 9432TX (83c170 ``EPIC'')
device		vx0		# 3Com 3c590, 3c595 (``Vortex'')

# PCI Ethernet NICs that use the common MII bus controller code.
controller	miibus0		# MII bus support
device		al0		# ADMtek AL981/AN985 (``Comet''/``Centaur'')
device		dm0		# Davicom DM9100/DM9102
device		mx0		# Macronix 98713/98715/98725 (``PMAC'')
device		rl0		# RealTek 8129/8139
device		sf0		# Adaptec AIC-6915 (``Starfire'')
device		sis0		# Silicon Integrated Systems SiS 900/SiS 7016
device		ste0		# Sundance ST201 (D-Link DFE-550TX)
device		tl0		# Texas Instruments ThunderLAN
device		vr0		# VIA Rhine, Rhine II
device		wb0		# Winbond W89C840F
device		xl0		# 3Com 3c90x (``Boomerang'', ``Cyclone'')

# ISA Ethernet NICs.
device		ed0	at isa? port 0x280 irq 10 iomem 0xd8000
device		ex0	at isa? port? irq?
#device		ep0
# 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		fe0	at isa? port 0x300 irq ?
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 irq ?
# requires PCCARD (PCMCIA) support to be activated
#device		xe0	at isa? port? irq ?

# PCCARD NIC drivers.
# ze and zp take over the pcic and cannot coexist with generic pccard
# support, nor the ed and ep drivers they replace.
#device		ze0	at isa? port 0x300 irq 10 iomem 0xd8000	
#device		zp0	at isa? port 0x300 irq 10 iomem 0xd8000

# Pseudo devices - the number indicates how many units to allocated.
pseudo-device	loop		# Network loopback
pseudo-device	ether		# Ethernet support
pseudo-device	sl	1	# Kernel SLIP
pseudo-device	ppp	1	# Kernel PPP
pseudo-device	tun		# Packet tunnel.
pseudo-device	pty		# Pseudo-ttys (telnet etc)
pseudo-device	gzip		# Exec gzipped a.out's

# 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
#controller	uhci0		# UHCI PCI->USB interface
#controller	ohci0		# OHCI PCI->USB interface
#controller	usb0		# USB Bus (required)
#device		ugen0		# Generic
#device		uhid0		# "Human Interface Devices"
#device		ukbd0		# Keyboard
#device		ulpt0		# Printer
#controller	umass0		# Disks/Mass storage - Requires scbus and da0
#device		ums0		# Mouse


>Description:

IdlePTD 3809280
initial pcb at 31dbc0
panicstr: softdep_lock: locking against myself
panic messages:
---
panic: softdep_write_inodeblock: indirect pointer #0 mismatch 0 != 903440

syncing disks... panic: softdep_lock: locking against myself

dumping to dev #wd/0x20001, offset 272800
dump 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 
---
#0  boot (howto=260) at ../../kern/kern_shutdown.c:273
(kgdb) bt
#0  boot (howto=260) at ../../kern/kern_shutdown.c:273
#1  0xc016c699 in panic (fmt=0xc02d5780 "softdep_lock: locking against myself")
    at ../../kern/kern_shutdown.c:523
#2  0xc0235129 in acquire_lock (lk=0xc030c634)
    at ../../ufs/ffs/ffs_softdep.c:266
#3  0xc0238b80 in softdep_update_inodeblock (ip=0xc0c49200, bp=0xc3444ef8, 
    waitfor=0) at ../../ufs/ffs/ffs_softdep.c:3487
#4  0xc02343ad in ffs_update (vp=0xc8e19060, waitfor=0)
    at ../../ufs/ffs/ffs_inode.c:105
#5  0xc023bcd4 in ffs_sync (mp=0xc0b09400, waitfor=2, cred=0xc073b900, 
    p=0xc0333e60) at ../../ufs/ffs/ffs_vfsops.c:986
#6  0xc0197163 in sync (p=0xc0333e60, uap=0x0) at ../../kern/vfs_syscalls.c:545
#7  0xc016c0af in boot (howto=256) at ../../kern/kern_shutdown.c:197
#8  0xc016c699 in panic (
    fmt=0xc02d64a0 "%s: indirect pointer #%ld mismatch %d != %d")
    at ../../kern/kern_shutdown.c:523
#9  0xc0237fc8 in initiate_write_inodeblock (inodedep=0xc0d15400, 
    bp=0xc34457f0) at ../../ufs/ffs/ffs_softdep.c:2831
#10 0xc0237cdb in softdep_disk_io_initiation (bp=0xc34457f0)
    at ../../ufs/ffs/ffs_softdep.c:2677
#11 0xc01a14a6 in spec_strategy (ap=0xc840deb0)
    at ../../miscfs/specfs/spec_vnops.c:413
#12 0xc01a0fbd in spec_vnoperate (ap=0xc840deb0)
    at ../../miscfs/specfs/spec_vnops.c:121
#13 0xc0243fd1 in ufs_vnoperatespec (ap=0xc840deb0)
    at ../../ufs/ufs/ufs_vnops.c:2319
#14 0xc018d119 in bwrite (bp=0xc34457f0) at vnode_if.h:940
#15 0xc019247a in vop_stdbwrite (ap=0xc840df20) at ../../kern/vfs_default.c:314
#16 0xc01922d9 in vop_defaultop (ap=0xc840df20) at ../../kern/vfs_default.c:134
#17 0xc01a0fbd in spec_vnoperate (ap=0xc840df20)
    at ../../miscfs/specfs/spec_vnops.c:121
#18 0xc0243fd1 in ufs_vnoperatespec (ap=0xc840df20)
    at ../../ufs/ufs/ufs_vnops.c:2319
#19 0xc018dfee in vfs_bio_awrite (bp=0xc34457f0) at vnode_if.h:1189
#20 0xc023d239 in ffs_fsync (ap=0xc840df88) at ../../ufs/ffs/ffs_vnops.c:210
#21 0xc0194bd8 in sched_sync () at vnode_if.h:533
#22 0xc026ed60 in fork_trampoline ()
Cannot access memory at address 0x2000.
(kgdb) f 8
#8  0xc016c699 in panic (
    fmt=0xc02d64a0 "%s: indirect pointer #%ld mismatch %d != %d")
    at ../../kern/kern_shutdown.c:523
(kgdb) up
#9  0xc0237fc8 in initiate_write_inodeblock (inodedep=0xc0d15400, 
    bp=0xc34457f0) at ../../ufs/ffs/ffs_softdep.c:2831
(kgdb) print *adp
$1 = {ad_list = {wk_list = {le_next = 0x0, le_prev = 0xc344fd2c}, wk_type = 4, 
    wk_state = 32777}, ad_next = {tqe_next = 0x0, tqe_prev = 0xc0d15444}, 
  ad_lbn = 12, ad_newblkno = 903440, ad_oldblkno = 0, ad_newsize = 8192, 
  ad_oldsize = 0, ad_deps = {le_next = 0xc0ba6300, le_prev = 0xc0d1acb0}, 
  ad_buf = 0x0, ad_inodedep = 0xc0d15400, ad_freefrag = 0x0}
(kgdb) p dp->di_ib[adp->ad_lbn - NADDR]
No symbol "NADDR" in current context.
(kgdb) p dp->di_ib[adp->ad_lbn - 12]
$2 = 0
(kgdb) 

>How-To-Repeat:

stressing the file system.  haven't figured out exactly what sequence
of operations seems to cause this.

>Fix:

none known :-(

>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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