Skip site navigation (1)Skip section navigation (2)
Date:      Wed,  1 Mar 2000 22:45:06 -0800 (PST)
From:      dhesi@rahul.net
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/17122: crash due to softdep_disk_write_complete: lock is held
Message-ID:  <20000302064506.88BC37C32@yellow.rahul.net>

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

>Number:         17122
>Category:       kern
>Synopsis:       crash due to: softdep_disk_write_complete: lock is held
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Mar  1 22:50:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     bolero rdroot
>Release:        FreeBSD 3.4-STABLE i386
>Organization:
a2i communications
>Environment:

FreeBSD 3.4-STABLE i386, updated with cvsup Mon Feb 14 17:04:55 PST
2000.  300 MHz AMD-K6 CPU, FIC PA2013 (I think ) m/b, 128 M ECC memory,
Tulip NIC, ncr 53c875-based SCSI.  SOFTUPDATES enabled in kernel.  One
IBM DGHS09Z 9-gig SCSI disk.

>Description:

The machine crashes and reboots once every 1-3 days.  Traceback of
crash dump is always similar and indicates softupdates as the likely
point of trouble.  A debugging kernel is now in use and a full
traceback with symbols is at the end of this problem report.  The kernel
config file is also included.

Please let me know if more information is needed.

>How-To-Repeat:

	Wait for crash.

>Fix:
	
None known.


HERE IS THE TRACEBACK:

Script started on Wed Mar  1 22:22:29 2000
...
# gdb -k kernel.debug vmcore.4
GNU gdb 4.18
Copyright 1998 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-unknown-freebsd"...
IdlePTD 3538944
initial pcb at 2de888
panicstr: softdep_disk_write_complete: lock is held
panic messages:
---
panic: softdep_fsync: pending ops

syncing disks... panic: softdep_lock: locking against myself
panic: softdep_disk_write_complete: lock is held
panic: softdep_disk_write_complete: lock is held
panic: softdep_disk_write_complete: lock is held
panic: softdep_disk_write_complete: lock is held
panic: softdep_disk_write_complete: lock is held
panic: softdep_disk_write_complete: lock is held

dumping to dev 20401, offset 786432
dump 128 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:285
285			dumppcb.pcb_cr3 = rcr3();
(kgdb) where
#0  boot (howto=260) at ../../kern/kern_shutdown.c:285
#1  0xc0164440 in at_shutdown (
    function=0xc02b0bd2 <__set_sysctl__debug_sym_sysctl___debug_rush_requests+2002>, arg=0xc4503f08, queue=-1044665344) at ../../kern/kern_shutdown.c:446
#2  0xc0221a40 in softdep_disk_write_complete (bp=0xc4503f08)
    at ../../ufs/ffs/ffs_softdep.c:2898
#3  0xc0182ac2 in biodone (bp=0xc4503f08) at ../../kern/vfs_bio.c:1925
#4  0xc012377a in dadone (periph=0xc1bb6180, done_ccb=0xc1bf2e00)
    at ../../cam/scsi/scsi_da.c:1312
#5  0xc011f367 in camisr (queue=0xc02ddb84) at ../../cam/cam_xpt.c:6144
#6  0xc011f179 in swi_cambio () at ../../cam/cam_xpt.c:6051
#7  0xc011c808 in xpt_polled_action (start_ccb=0xc9833324)
    at ../../cam/cam_xpt.c:3336
#8  0xc0123c49 in dashutdown (howto=260, arg=0x0)
    at ../../cam/scsi/scsi_da.c:1604
#9  0xc016418b in boot (howto=260) at ../../kern/kern_shutdown.c:280
#10 0xc0164440 in at_shutdown (
    function=0xc02b0bd2 <__set_sysctl__debug_sym_sysctl___debug_rush_requests+2002>, arg=0xc44f7388, queue=-1044665344) at ../../kern/kern_shutdown.c:446
#11 0xc0221a40 in softdep_disk_write_complete (bp=0xc44f7388)
    at ../../ufs/ffs/ffs_softdep.c:2898
#12 0xc0182ac2 in biodone (bp=0xc44f7388) at ../../kern/vfs_bio.c:1925
#13 0xc012377a in dadone (periph=0xc1bb6180, done_ccb=0xc1cae200)
---Type <return> to continue, or q <return> to quit---
    at ../../cam/scsi/scsi_da.c:1312
#14 0xc011f367 in camisr (queue=0xc02ddb84) at ../../cam/cam_xpt.c:6144
#15 0xc011f179 in swi_cambio () at ../../cam/cam_xpt.c:6051
#16 0xc011c808 in xpt_polled_action (start_ccb=0xc9833808)
    at ../../cam/cam_xpt.c:3336
#17 0xc0123c49 in dashutdown (howto=260, arg=0x0)
    at ../../cam/scsi/scsi_da.c:1604
#18 0xc016418b in boot (howto=260) at ../../kern/kern_shutdown.c:280
#19 0xc0164440 in at_shutdown (
    function=0xc02b0bd2 <__set_sysctl__debug_sym_sysctl___debug_rush_requests+2002>, arg=0xc455db18, queue=-1044665344) at ../../kern/kern_shutdown.c:446
#20 0xc0221a40 in softdep_disk_write_complete (bp=0xc455db18)
    at ../../ufs/ffs/ffs_softdep.c:2898
#21 0xc0182ac2 in biodone (bp=0xc455db18) at ../../kern/vfs_bio.c:1925
#22 0xc012377a in dadone (periph=0xc1bb6180, done_ccb=0xc1bf2a00)
    at ../../cam/scsi/scsi_da.c:1312
#23 0xc011f367 in camisr (queue=0xc02ddb84) at ../../cam/cam_xpt.c:6144
#24 0xc011f179 in swi_cambio () at ../../cam/cam_xpt.c:6051
#25 0xc011c808 in xpt_polled_action (start_ccb=0xc9833cec)
    at ../../cam/cam_xpt.c:3336
#26 0xc0123c49 in dashutdown (howto=260, arg=0x0)
    at ../../cam/scsi/scsi_da.c:1604
#27 0xc016418b in boot (howto=260) at ../../kern/kern_shutdown.c:280
---Type <return> to continue, or q <return> to quit---
#28 0xc0164440 in at_shutdown (
    function=0xc02b0bd2 <__set_sysctl__debug_sym_sysctl___debug_rush_requests+2002>, arg=0xc4538678, queue=-1044665344) at ../../kern/kern_shutdown.c:446
#29 0xc0221a40 in softdep_disk_write_complete (bp=0xc4538678)
    at ../../ufs/ffs/ffs_softdep.c:2898
#30 0xc0182ac2 in biodone (bp=0xc4538678) at ../../kern/vfs_bio.c:1925
#31 0xc012377a in dadone (periph=0xc1bb6180, done_ccb=0xc1bbee00)
    at ../../cam/scsi/scsi_da.c:1312
#32 0xc011f367 in camisr (queue=0xc02ddb84) at ../../cam/cam_xpt.c:6144
#33 0xc011f179 in swi_cambio () at ../../cam/cam_xpt.c:6051
#34 0xc011c7cd in xpt_polled_action (start_ccb=0xc98341d4)
    at ../../cam/cam_xpt.c:3325
#35 0xc0123c49 in dashutdown (howto=260, arg=0x0)
    at ../../cam/scsi/scsi_da.c:1604
#36 0xc016418b in boot (howto=260) at ../../kern/kern_shutdown.c:280
#37 0xc0164440 in at_shutdown (
    function=0xc02b0bd2 <__set_sysctl__debug_sym_sysctl___debug_rush_requests+2002>, arg=0xc450f930, queue=-1044665344) at ../../kern/kern_shutdown.c:446
#38 0xc0221a40 in softdep_disk_write_complete (bp=0xc450f930)
    at ../../ufs/ffs/ffs_softdep.c:2898
#39 0xc0182ac2 in biodone (bp=0xc450f930) at ../../kern/vfs_bio.c:1925
#40 0xc012377a in dadone (periph=0xc1bb6180, done_ccb=0xc1b69200)
    at ../../cam/scsi/scsi_da.c:1312
---Type <return> to continue, or q <return> to quit---
#41 0xc011f367 in camisr (queue=0xc02ddb84) at ../../cam/cam_xpt.c:6144
#42 0xc011f179 in swi_cambio () at ../../cam/cam_xpt.c:6051
#43 0xc011c7cd in xpt_polled_action (start_ccb=0xc98346bc)
    at ../../cam/cam_xpt.c:3325
#44 0xc0123c49 in dashutdown (howto=260, arg=0x0)
    at ../../cam/scsi/scsi_da.c:1604
#45 0xc016418b in boot (howto=260) at ../../kern/kern_shutdown.c:280
#46 0xc0164440 in at_shutdown (
    function=0xc02b0bd2 <__set_sysctl__debug_sym_sysctl___debug_rush_requests+2002>, arg=0xc4544540, queue=-1044665344) at ../../kern/kern_shutdown.c:446
#47 0xc0221a40 in softdep_disk_write_complete (bp=0xc4544540)
    at ../../ufs/ffs/ffs_softdep.c:2898
#48 0xc0182ac2 in biodone (bp=0xc4544540) at ../../kern/vfs_bio.c:1925
#49 0xc012377a in dadone (periph=0xc1bb6180, done_ccb=0xc1bbe600)
    at ../../cam/scsi/scsi_da.c:1312
#50 0xc011f367 in camisr (queue=0xc02ddb84) at ../../cam/cam_xpt.c:6144
#51 0xc011f179 in swi_cambio () at ../../cam/cam_xpt.c:6051
#52 0xc011c7cd in xpt_polled_action (start_ccb=0xc9834ba4)
    at ../../cam/cam_xpt.c:3325
#53 0xc0123c49 in dashutdown (howto=260, arg=0x0)
    at ../../cam/scsi/scsi_da.c:1604
#54 0xc016418b in boot (howto=260) at ../../kern/kern_shutdown.c:280
#55 0xc0164440 in at_shutdown (
---Type <return> to continue, or q <return> to quit---
    function=0xc02b01cc <__set_sysuninit_set_sym_M_DIRREM_uninit_sys_uninit+4>, arg=0xc1c97200, queue=-914141780) at ../../kern/kern_shutdown.c:446
#56 0xc021ea9d in acquire_lock (lk=0xc02d271c)
    at ../../ufs/ffs/ffs_softdep.c:266
#57 0xc0222451 in softdep_update_inodeblock (ip=0xc1c97200, bp=0xc455c520, 
    waitfor=0) at ../../ufs/ffs/ffs_softdep.c:3447
#58 0xc021db24 in ffs_update (vp=0xc96dcd80, waitfor=0)
    at ../../ufs/ffs/ffs_inode.c:105
#59 0xc0226f86 in ffs_fsync (ap=0xc9834e64) at ../../ufs/ffs/ffs_vnops.c:258
#60 0xc022535f in ffs_sync (mp=0xc1bcbe00, waitfor=2, cred=0xc0756580, 
    p=0xc02fa078) at vnode_if.h:499
#61 0xc0189c3b in sync (p=0xc02fa078, uap=0x0) at ../../kern/vfs_syscalls.c:549
#62 0xc0164001 in boot (howto=256) at ../../kern/kern_shutdown.c:203
#63 0xc0164440 in at_shutdown (
    function=0xc02b0f42 <__set_sysctl__debug_sym_sysctl___debug_rush_requests+2882>, arg=0xc98a8080, queue=0) at ../../kern/kern_shutdown.c:446
#64 0xc02226f2 in softdep_fsync (vp=0xc98a8080)
    at ../../ufs/ffs/ffs_softdep.c:3567
#65 0xc018c52a in fsync (p=0xc97e04c0, uap=0xc9834f94)
    at ../../kern/vfs_syscalls.c:2451
#66 0xc025bb8b in syscall (frame={tf_es = 39, tf_ds = 39, 
      tf_edi = -1077945576, tf_esi = 0, tf_ebp = -1077945816, 
      tf_isp = -914141212, tf_ebx = 134664136, tf_edx = 8, tf_ecx = 8, 
---Type <return> to continue, or q <return> to quit---
      tf_eax = 95, tf_trapno = 7, tf_err = 2, tf_eip = 671803168, tf_cs = 31, 
      tf_eflags = 582, tf_esp = -1077945832, tf_ss = 39})
    at ../../i386/i386/trap.c:1100
#67 0xc024ecfc in Xint0x80_syscall ()
#68 0x804e728 in ?? ()
#69 0x8049bf1 in ?? ()
#70 0x804baf5 in ?? ()
#71 0x804bc06 in ?? ()
#72 0x80529fd in ?? ()
#73 0x804c377 in ?? ()
#74 0x8049f02 in ?? ()
#75 0x80499f1 in ?? ()
(kgdb) quit
# exit
exit

Script done on Wed Mar  1 22:23:17 2000


HERE IS THE KERNEL CONFIG
#
# GENERIC -- Generic machine with WD/AHx/NCR/BTx family disks
#
# For more information read the handbook part System Administration -> 
# Configuring the FreeBSD Kernel -> The Configuration File. 
# The handbook is available in /usr/share/doc/handbook or online as
# latest version from the FreeBSD World Wide Web server 
# <URL:http://www.FreeBSD.ORG/>;
#
# An exhaustive list of options and more detailed explanations of the 
# device lines is present in the ./LINT configuration file. If you are 
# in doubt as to the purpose or necessity of a line, check first in LINT.
#
#	$Id: i2,v 1.14 2000/03/01 11:01:31 rdroot Exp $

machine		"i386"
#cpu		"I386_CPU"
#cpu		"I486_CPU"
cpu		"I586_CPU"
cpu		"I686_CPU"
ident		GENERIC
maxusers	256

options		MATH_EMULATE		#Support for x87 emulation
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
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		FAILSAFE		#Be conservative
options		USERCONFIG		#boot -c editor
options		VISUAL_USERCONFIG	#visual boot -c editor
options		NMBCLUSTERS=8192	#add more mbufs (default is 1024)

# 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

# do optimization (not done by default)
# .. disabled to see if kernel crashes go away
##makeoptions COPTFLAGS="-O2 -pipe"

config		kernel	root on wd0

# 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	eisa0
controller	pci0

controller	fdc0	at isa? port "IO_FD1" bio irq 6 drq 2
disk		fd0	at fdc0 drive 0
disk		fd1	at fdc0 drive 1

options		"CMD640"	# work around CMD640 chip deficiency
controller	wdc0	at isa? port "IO_WD1" bio irq 14
disk		wd0	at wdc0 drive 0
disk		wd1	at wdc0 drive 1

controller	wdc1	at isa? port "IO_WD2" bio irq 15
disk		wd2	at wdc1 drive 0
disk		wd3	at wdc1 drive 1

options		ATAPI		#Enable ATAPI support for IDE bus
options		ATAPI_STATIC	#Don't do it as an LKM
device		acd0		#IDE CD-ROM
device		wfd0		#IDE Floppy (e.g. LS-120)

# A single entry for any of these controllers (ncr, ahb, ahc) is
# sufficient for any number of installed devices.
controller	ncr0
controller	ahb0
controller	ahc0
controller	isp0

# This controller offers a number of configuration options, too many to
# document here  - see the LINT file in this directory and look up the
# dpt0 entry there for much fuller documentation on this.
controller      dpt0

controller	adv0	at isa? port ? cam irq ?
controller	adw0
controller	bt0	at isa? port ? cam irq ?
controller	aha0	at isa? port ? cam irq ?
#controller	aic0	at isa? port 0x340 bio irq 11

controller	scbus0

# including device ch0
# .. causes boot to hang
#device		ch0	#SCSI media changers

device		da0

device		sa0

device		pass0

device		cd0	#Only need one of these, the code dynamically grows

device		wt0	at isa? port 0x300 bio irq 5 drq 1
device		mcd0	at isa? port 0x300 bio irq 10

controller	matcd0	at isa? port 0x230 bio

device		scd0	at isa? port 0x230 bio

# atkbdc0 controlls both the keyboard and the PS/2 mouse
controller	atkbdc0	at isa? port IO_KBD tty
device		atkbd0	at isa? tty irq 1
device		psm0	at isa? tty 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? tty
# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device		vt0	at isa? tty
#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

device		npx0	at isa? port IO_NPX irq 13

#
# Laptop support (see LINT for more options)
#
device		apm0    at isa?	disable	flags 0x31 # Advanced Power Management

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

# Flags 0x30 = sum of 0x10 and 0x20.
# Flags 0x10 means this device is a potential system console.
# Flags 0x20 means this device is forced to be the system console.
# See 'man sio' for other flags.
device		sio0	at isa? port "IO_COM1" flags 0x30 tty irq 4
device		sio1	at isa? port "IO_COM2" tty irq 3
device		sio2	at isa? disable port "IO_COM3" tty irq 5
device		sio3	at isa? disable port "IO_COM4" tty irq 9

# Parallel port
device		ppc0	at isa? port? net irq 7
controller	ppbus0
device		nlpt0	at ppbus?
device		plip0	at ppbus?
device		ppi0	at ppbus?
#controller	vpo0	at ppbus?

# Order is important here due to intrusive probes, do *not* alphabetize
# this list of network interfaces until the probes have been fixed.
# Right now it appears that the ie0 must be probed before ep0. See
# revision 1.20 of this file.
device ax0
device de0
device fxp0
device mx0
device pn0
device rl0
device tl0
device tx0
device vr0
device vx0
device wb0
device xl0

device ed0 at isa? port 0x280 net irq 10 iomem 0xd8000
device ie0 at isa? port 0x300 net irq 10 iomem 0xd0000
device ep0 at isa? port 0x300 net irq 10
device ex0 at isa? port? net irq?
device fe0 at isa? port 0x300 net irq ?
device le0 at isa? port 0x300 net irq 5 iomem 0xd0000
device lnc0 at isa? port 0x280 net irq 10 drq 0
device ze0 at isa? port 0x300 net irq 10 iomem 0xd8000
device zp0 at isa? port 0x300 net irq 10 iomem 0xd8000
device cs0 at isa? port 0x300 net irq ?

pseudo-device	loop
pseudo-device	ether
pseudo-device	sl	1
pseudo-device	ppp	1
pseudo-device	tun	1
pseudo-device	pty	64
pseudo-device	gzip		# Exec gzipped a.out's
pseudo-device	vn		#Vnode driver (turns a file into a device)
pseudo-device	ccd	4	#Concatenated disk driver

# KTRACE enables the system-call tracing facility ktrace(2).
# This adds 4 KB bloat to your kernel, and slightly increases
# the costs of each syscall.
options		KTRACE		#kernel tracing

# This provides support for System V shared memory and message queues.
#
options		SYSVSHM
options		SYSVMSG

#  The `bpfilter' pseudo-device enables the Berkeley Packet Filter.  Be
#  aware of the legal and administrative consequences of enabling this
#  option.  The number of devices determines the maximum number of
#  simultaneous BPF clients programs runnable.
pseudo-device	bpfilter 4	#Berkeley packet filter

##options	DUMMYNET		# for dummynet(4) bandwidth limiter
options		IPDIVERT		# to use divert(4) sockets
options		IPFIREWALL			# needed by dummynet
options		IPFIREWALL_DEFAULT_TO_ACCEPT	# change default of above


# USB support
#controller    uhci0
#controller    ohci0
#controller    usb0
#
# for the moment we have to specify the priorities of the device
# drivers explicitly by the ordering in the list below. This will
# be changed in the future.
#
#device        ums0
#device        ukbd0
#device        ulpt0
#device        uhub0
#device        ucom0
#device        umodem0
#device        hid0
#device        ugen0

#
#options       USB_DEBUG
#options       USBVERBOSE

== END ==

>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?20000302064506.88BC37C32>