Skip site navigation (1)Skip section navigation (2)
Date:      Sun,  1 Sep 2002 11:17:22 +0700 (OMSST)
From:      El Vampiro <vampiro@rootshell.ru>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/42277: Several kernel panics per day with panicstr: softdep_lock: locking against myself. Further filesystems damage guaranteed.
Message-ID:  <20020901041722.7C3385430@vampiro.rootshell.ru>

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

>Number:         42277
>Category:       kern
>Synopsis:       Several kernel panics per day with panicstr: softdep_lock: locking against myself. Further filesystems damage guaranteed.
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Aug 31 21:20:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     El Vampiro
>Release:        FreeBSD 4.6-STABLE i386
>Organization:
>Environment:
System: FreeBSD rshb.com.ru 4.6-STABLE FreeBSD 4.6-STABLE #0: Sat Aug 31 13:17:44 OMSST 2002 vampiro@vampiro.rsb.local:/usr/obj/usr/src/sys/NEWMONSTER  i386

Hardware: new Intel brand server

Kernel:
	machine		i386
	cpu		I586_CPU
	cpu		I686_CPU
	ident		NEWMONSTER
	maxusers	128
	makeoptions	DEBUG=-g
	options		CPU_ENABLE_SSE
	options 	INET
	options 	FFS
	options 	FFS_ROOT
	options		NFS
	options 	SOFTUPDATES
	options 	PROCFS
	options		CD9660
	options 	COMPAT_43
	options 	UCONSOLE
	options 	USERCONFIG
	options 	VISUAL_USERCONFIG
	options 	P1003_1B
	options 	_KPOSIX_PRIORITY_SCHEDULING
	options		_KPOSIX_VERSION=199309L
	options		KTRACE
	options		PERFMON
	options 	SYSVSHM
	options 	SYSVMSG
	options 	SYSVSEM
	options		SHMMAXPGS=8192  # max amount of shared memory pages (4k on i386)
	options		SHMMNI=512      # max shared mem id's per system
	options		SHMSEG=256      # max shared mem id's per process
	options		MSGMNB=8192     # max # of bytes in a queue
	options		MSGMNI=256      # number of message queue identifiers
	options		MSGSEG=256      # number of message segments per queue
	options		MSGSSZ=64       # size of a message segment
	options		MSGTQL=8192     # max messages in system
	options		SEMMAP=256
	options		SEMMNI=256
	options		SEMMNS=512
	options		SEMMNU=256
	options		INCLUDE_CONFIG_FILE
	options		IPFILTER
	options		IPFILTER_LOG
	options         IPFIREWALL
	options         IPFIREWALL_VERBOSE
	options         IPFIREWALL_DEFAULT_TO_ACCEPT
	options		IPFW2
	options		RANDOM_IP_ID
	options		ICMP_BANDLIM
	options		ACCEPT_FILTER_HTTP
	options         VESA
	options         PANIC_REBOOT_WAIT_TIME=20
	options         SMBFS
	options         LIBMCHAIN
	options         LIBICONV
	options         NETSMB
	options         NETSMBCRYPTO
	options         UFS_DIRHASH
	options         SHOW_BUSYBUFS
	options		HZ=1000
	device		isa
	device		pci
	device		fdc0	at isa? port IO_FD1 irq 6 drq 2
	device		fd0	at fdc0 drive 0
	device		fd1	at fdc0 drive 1
	device		ata0	at isa? port IO_WD1 irq 14
	device		ata1	at isa? port IO_WD2 irq 15
	device		ata
	device		atadisk
	device          atapicd
	options 	ATA_STATIC_ID
	device          ahc
	device          aic0    at isa?
	device          scbus
	device          da
	device          sa
	device          cd
	device          pass
	device		atkbdc0	at isa? port IO_KBD
	device		atkbd0	at atkbdc? irq 1
	device		vga0	at isa?
	device		sc0	at isa? flags 0x100
	device		npx0	at nexus? port IO_NPX irq 13
	device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
	device		sio1	at isa? port IO_COM2 irq 3
	device 		miibus
	device 		dc
	device 		fxp
	pseudo-device	loop
	pseudo-device	ether
	pseudo-device	tun
	pseudo-device	pty
	pseudo-device	bpf	8
	pseudo-device	vn	2
	pseudo-device   gzip
	pseudo-device   splash
	device          smbus
	device          intpm
	device          alpm
	device          ichsmb
	device          viapm
	device          smb
	device          iicbus
	device          iicbb
	device          ic
	device          iic
	device          iicsmb
	device		apm0 at nexus?

Copyright (c) 1992-2002 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 4.6-STABLE #0: Sat Aug 31 13:17:44 OMSST 2002
    vampiro@vampiro.rsb.local:/usr/obj/usr/src/sys/NEWMONSTER
Timecounter "i8254"  frequency 1193182 Hz
CPU: Pentium III/Pentium III Xeon/Celeron (999.72-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x68a  Stepping = 10
  Features=0x387fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,PN,MMX,FXSR,SSE>
real memory  = 268369920 (262080K bytes)
avail memory = 257720320 (251680K bytes)
Preloaded elf kernel "kernel" at 0xc0360000.
VESA: v2.0, 4096k memory, flags:0x0, mode table:0xc02fe6c2 (1000022)
VESA: ATI MACH64
netsmb_dev: loaded
Pentium Pro MTRR support enabled
Using $PIR table, 268435454 entries at 0xc00fdf10
apm: protected mode connections are not supported
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <ServerWorks NB6635 3.0LE host to PCI bridge> on motherboard
pci0: <PCI bus> on pcib0
pci0: <ATI Mach64-GV graphics accelerator> at 2.0 irq 11
fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0x5800-0x583f mem 0xfb000000-0xfb0fffff,0xfb101000-0xfb101fff irq 10 at device 3.0 on pci0
fxp0: Ethernet address 00:d0:b7:b8:ab:64
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc0: <Davicom DM9102A 10/100BaseTX> port 0x5400-0x54ff mem 0xfb102000-0xfb1020ff irq 7 at device 7.0 on pci0
dc0: Ethernet address: 00:80:ad:08:12:2b
miibus1: <MII bus> on dc0
ukphy0: <Generic IEEE 802.3u media interface> on miibus1
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
isab0: <ServerWorks IB6566 PCI to ISA bridge> at device 15.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <ServerWorks ROSB4 ATA33 controller> port 0x5840-0x584f,0x374-0x377,0x170-0x177 at device 15.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
pcib1: <ServerWorks NB6635 3.0LE host to PCI bridge> on motherboard
pci1: <PCI bus> on pcib1
ahc0: <Adaptec aic7899 Ultra160 SCSI adapter> port 0x6000-0x60ff mem 0xfd000000-0xfd000fff irq 9 at device 4.0 on pci1
aic7899: Ultra160 Wide Channel A, SCSI Id=7, 32/253 SCBs
ahc1: <Adaptec aic7899 Ultra160 SCSI adapter> port 0x6400-0x64ff mem 0xfd001000-0xfd001fff irq 5 at device 4.1 on pci1
aic7899: Ultra160 Wide Channel B, SCSI Id=7, 32/253 SCBs
orm0: <Option ROMs> at iomem 0xc0000-0xc7fff,0xc8000-0xc97ff,0xc9800-0xcf7ff 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
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
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
ipfw2 initialized, divert disabled, rule-based forwarding enabled, default to accept, logging unlimited
IP Filter: v3.4.27 initialized.  Default = pass all, Logging = enabled
acd0: CDROM <SONY CD-ROM CDU5221> at ata0-master PIO4
Waiting 2 seconds for SCSI devices to settle
sa0 at ahc1 bus 0 target 0 lun 0
sa0: <ARCHIVE Python 04106-XXX 7550> Removable Sequential Access SCSI-2 device 
sa0: 10.000MB/s transfers (10.000MHz, offset 15)
da0 at ahc0 bus 0 target 0 lun 0
da0: <QUANTUM ATLAS10K3_18_WLS 020W> Fixed Direct Access SCSI-3 device 
da0: 160.000MB/s transfers (80.000MHz, offset 127, 16bit), Tagged Queueing Enabled
da0: 17537MB (35916548 512 byte sectors: 255H 63S/T 2235C)
da1 at ahc0 bus 0 target 1 lun 0
da1: <QUANTUM ATLAS10K3_18_WLS 020W> Fixed Direct Access SCSI-3 device 
da1: 160.000MB/s transfers (80.000MHz, offset 127, 16bit), Tagged Queueing Enabled
da1: 17537MB (35916548 512 byte sectors: 255H 63S/T 2235C)
Mounting root from ufs:/dev/da0s1a

>Description:
	Several kernel panics per day with panicstr: softdep_lock: locki ng against myself
	Upon reboot fsck discovers many filesystem errors. File damage occurs often.
	$ gdb -k kernel.debug vmcore.0 
	GNU gdb 4.18 (FreeBSD)
	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"...

	/big1/vampiro/crashes/4-NEW/vmcore.0: Permission denied.
	(kgdb) quit
	$ gdb -k kernel.debug vmcore.0 
	GNU gdb 4.18 (FreeBSD)
	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 at phsyical address 0x0037f000
	initial pcb at physical address 0x002ea800
	panicstr: softdep_lock: locking against myself
	panic messages:
	---
	Fatal trap 12: page fault while in kernel mode
	fault virtual address   = 0xffff000a
	fault code              = supervisor read, page not present
	instruction pointer     = 0x8:0xc022988c
	stack pointer           = 0x10:0xcd0f9d10
	frame pointer           = 0x10:0xcd0f9d10
	code segment            = base 0x0, limit 0xfffff, type 0x1b
				= DPL 0, pres 1, def32 1, gran 1
	processor eflags        = interrupt enabled, resume, IOPL = 0
	current process         = 6 (syncer)
	interrupt mask          = bio 
	trap number             = 12
	panic: page fault

	syncing disks... panic: softdep_lock: locking against myself
	Uptime: 3h29m7s

	dumping to dev #da/0x20009, offset 128
	dump 255 254 253 252 251 250 249 248 247 246 245 244 243 242 241 240 239 238 237 236 235 234 233 232 231 230 229 228 227 226 225 224 223 222 221 220 219 218 217 216 215 214 213 212 211 210 209 208 207 206 205 204 203 202 201 200 199 198 197 196 195 194 193 192 191 190 189 188 187 186 185 184 183 182 181 180 179 178 177 176 175 174 173 172 171 170 169 168 167 166 165 164 163 162 161 160 159 158 157 156 155 154 153 152 151 150 149 148 147 146 145 144 143 142 141 140 139 138 137 136 135 134 133 132 131 130 129 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 
	---
	#0  dumpsys () at /usr/src/sys/kern/kern_shutdown.c:487
	487             if (dumping++) {
	(kgdb) where
	#0  dumpsys () at /usr/src/sys/kern/kern_shutdown.c:487
	#1  0xc01888d3 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:316
	#2  0xc0188cf8 in poweroff_wait (junk=0xc02ae0c0, howto=-1053066752)
	    at /usr/src/sys/kern/kern_shutdown.c:595
	#3  0xc02295be in acquire_lock (lk=0xc02d8c7c)
	    at /usr/src/sys/ufs/ffs/ffs_softdep.c:261
	#4  0xc022d6d8 in softdep_update_inodeblock (ip=0xc13b7a00, bp=0xc64ec464, 
	    waitfor=0) at /usr/src/sys/ufs/ffs/ffs_softdep.c:3813
	#5  0xc022870d in ffs_update (vp=0xcdbcefc0, waitfor=0)
	    at /usr/src/sys/ufs/ffs/ffs_inode.c:106
	#6  0xc0232105 in ffs_fsync (ap=0xcd0f9bb0)
	    at /usr/src/sys/ufs/ffs/ffs_vnops.c:273
	#7  0xc02309e3 in ffs_sync (mp=0xc12a1a00, waitfor=2, cred=0xc0a3c880, 
	    p=0xc02ff300) at vnode_if.h:558
	#8  0xc01b8f97 in sync (p=0xc02ff300, uap=0x0)
	    at /usr/src/sys/kern/vfs_syscalls.c:576
	#9  0xc0188646 in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:235
	#10 0xc0188cf8 in poweroff_wait (junk=0xc02b868c, howto=-1070890577)
	    at /usr/src/sys/kern/kern_shutdown.c:595
	#11 0xc0274866 in trap_fatal (frame=0xcd0f9cd0, eva=4294901770)
	    at /usr/src/sys/i386/i386/trap.c:974
	#12 0xc0274539 in trap_pfault (frame=0xcd0f9cd0, usermode=0, eva=4294901770)
	    at /usr/src/sys/i386/i386/trap.c:867
	#13 0xc02740f7 in trap (frame={tf_fs = -854654960, tf_es = -1053884400, 
	      tf_ds = 16, tf_edi = 0, tf_esi = -1053851648, tf_ebp = -854614768, 
	      tf_isp = -854614788, tf_ebx = -65536, tf_edx = 0, tf_ecx = -65536, 
	      tf_eax = -1051831424, tf_trapno = 12, tf_err = 0, tf_eip = -1071474548, 
	      tf_cs = 8, tf_eflags = 66067, tf_esp = -854614736, tf_ss = -1071458418})
	    at /usr/src/sys/i386/i386/trap.c:466
	#14 0xc022988c in worklist_remove (item=0xffff0000)
	    at /usr/src/sys/ufs/ffs/ffs_softdep.c:467
	#15 0xc022d78e in softdep_update_inodeblock (ip=0xc12f8000, bp=0xc651ab80, 
	    waitfor=0) at /usr/src/sys/ufs/ffs/ffs_softdep.c:3847
	#16 0xc022870d in ffs_update (vp=0xcdd565c0, waitfor=0)
	    at /usr/src/sys/ufs/ffs/ffs_inode.c:106
	#17 0xc02289f1 in ffs_truncate (vp=0xcdd565c0, length=0, flags=0, cred=0x0, 
	    p=0xcc00a5e0) at /usr/src/sys/ufs/ffs/ffs_inode.c:201
	#18 0xc0232e08 in ufs_inactive (ap=0xcd0f9ed8)
	    at /usr/src/sys/ufs/ufs/ufs_inode.c:89
	#19 0xc0238301 in ufs_vnoperate (ap=0xcd0f9ed8)
	    at /usr/src/sys/ufs/ufs/ufs_vnops.c:2422
	#20 0xc01b70e8 in vput (vp=0xcdd565c0) at vnode_if.h:815
	#21 0xc022c594 in handle_workitem_remove (dirrem=0xc14034e0)
	    at /usr/src/sys/ufs/ffs/ffs_softdep.c:2852
	#22 0xc0229c0d in process_worklist_item (matchmnt=0x0, flags=0)
	    at /usr/src/sys/ufs/ffs/ffs_softdep.c:716
	#23 0xc0229ab2 in softdep_process_worklist (matchmnt=0x0)
	    at /usr/src/sys/ufs/ffs/ffs_softdep.c:622
	#24 0xc01b6a0f in sched_sync () at /usr/src/sys/kern/vfs_subr.c:1177
	(kgdb) up 14   
	#14 0xc022988c in worklist_remove (item=0xffff0000)
	    at /usr/src/sys/ufs/ffs/ffs_softdep.c:467
	467                     panic("worklist_remove: lock not held");
	(kgdb) l
	462     worklist_remove(item)
	463             struct worklist *item;
	464     {
	465
	466             if (lk.lkt_held == -1)
	467                     panic("worklist_remove: lock not held");
	468             if ((item->wk_state & ONWORKLIST) == 0) {
	469                     FREE_LOCK(&lk);
	470                     panic("worklist_remove: not on list");
	471             }
	(kgdb) p item
	$1 = (struct worklist *) 0x0
	(kgdb) p lk
	$2 = {lkt_spl = 0, lkt_held = -1}
	(kgdb) up
	#15 0xc022d78e in softdep_update_inodeblock (ip=0xc12f8000, bp=0xc651ab80, 
	    waitfor=0) at /usr/src/sys/ufs/ffs/ffs_softdep.c:3847
	3847                    WORKLIST_REMOVE(wk);
	(kgdb) l
	3842             * operations dependent on the inode being written to disk
	3843             * can be moved to the id_bufwait so that they will be
	3844             * processed when the buffer I/O completes.
	3845             */
	3846            while ((wk = LIST_FIRST(&inodedep->id_inowait)) != NULL) {
	3847                    WORKLIST_REMOVE(wk);
	3848                    WORKLIST_INSERT(&inodedep->id_bufwait, wk);
	3849            }
	3850            /*
	3851             * Newly allocated inodes cannot be written until the bitmap
	(kgdb) p wk
	$3 = (struct worklist *) 0x68c040
	(kgdb) p inodedep
	$4 = (struct inodedep *) 0xc14e5380
	(kgdb) p inodedep->id_inowait
	$5 = {lh_first = 0xffff0000}
	(kgdb) p inodedep->id_bufwait
	$6 = {lh_first = 0x0}

	I can provide more info upon request.
	
>How-To-Repeat:
	I found no way to repeat this. System can panic even upon minimal activity and can work upon hard load.	
>Fix:
	The only way I found is turn softupdates off

>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?20020901041722.7C3385430>