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>
