Date: Wed, 19 Jul 2000 04:10:04 -0700 (PDT) From: Joakim Henriksson <murduth@ludd.luth.se> To: freebsd-bugs@FreeBSD.org Subject: Re: misc/20031: kernel randomly panics with ffs_clusteralloc: map mismatch Message-ID: <200007191110.EAA42177@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR misc/20031; it has been noted by GNATS. From: Joakim Henriksson <murduth@ludd.luth.se> To: chris@summersault.com Cc: freebsd-gnats-submit@FreeBSD.ORG Subject: Re: misc/20031: kernel randomly panics with ffs_clusteralloc: map mismatch Date: Wed, 19 Jul 2000 13:01:25 +0200 > Possibly related: in each crash, the /var/log/messages file has a large 4-5 hour gap in it preceeding the crash, where it appears that syslogd isn't writing out its activity. > > This report is similar to PR#16740, which looks to be unresolved. > >How-To-Repeat: > Unknown, although it seems to involve having a particular hardware setup and then generating enough disk writes to cause the panic. > >Fix: > I've tried rebuilding the kernel, running fsck several times over, checking the bios settings, and can't get anywhere. Sorry. I've been getting consistant crashes while accessing a msdos drive since i filed the 16740 PR. Do you perchance have a VIA MVP3 based mother board? Perhaps you could send the chipset related info from a "boot -v"? Here is some interesting items from the crash dump. IdlePTD 3600384 initial pcb at 2e9340 panicstr: page fault panic messages: --- Fatal trap 12: page fault while in kernel mode fault virtual address = 0xe0c58ffc fault code = supervisor read, page not present instruction pointer = 0x8:0xc018250b stack pointer = 0x10:0xc8fbed2c frame pointer = 0x10:0xc8fbed3c 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 = 19 (cp) interrupt mask = none trap number = 12 panic: page fault --- (kgdb) where #0 boot (howto=256) at ../../kern/kern_shutdown.c:302 #1 0xc014a328 in poweroff_wait (junk=0xc02a1b4f, howto=-933211072) at ../../kern/kern_shutdown.c:552 #2 0xc02668c5 in trap_fatal (frame=0xc8fbecec, eva=3771043836) at ../../i386/i386/trap.c:927 #3 0xc026659d in trap_pfault (frame=0xc8fbecec, usermode=0, eva=3771043836) at ../../i386/i386/trap.c:820 #4 0xc026616f in trap (frame={tf_fs = 16, tf_es = 16, tf_ds = 16, tf_edi = 6984, tf_esi = -1060794368, tf_ebp = -923013828, tf_isp = -923013864, tf_ebx = -1060798464, tf_edx = 134217727, tf_ecx = 31, tf_eax = -2147483648, tf_trapno = 12, tf_err = 0, tf_eip = -1072159477, tf_cs = 8, tf_eflags = 68246, tf_esp = 268435455, tf_ss = 268435455}) at ../../i386/i386/trap.c:426 #5 0xc018250b in updatefats (pmp=0xc0c58000, bp=0xc3551760, fatbn=6984) at ../../msdosfs/msdosfs_fat.c:353 #6 0xc01829dc in fatchain (pmp=0xc0c58000, start=890233, count=0, fillwith=4294967295) at ../../msdosfs/msdosfs_fat.c:674 #7 0xc0182afd in chainalloc (pmp=0xc0c58000, start=890233, count=8, fillwith=4294967295, retcluster=0xc8fbee00, got=0xc8fbedfc) at ../../msdosfs/msdosfs_fat.c:748 #8 0xc0182cfa in clusteralloc (pmp=0xc0c58000, start=0, count=8, fillwith=4294967295, retcluster=0xc8fbee00, got=0xc8fbedfc) at ../../msdosfs/msdosfs_fat.c:842 ---Type <return> to continue, or q <return> to quit--- #9 0xc0183075 in extendfile (dep=0xc0c95300, count=8, bpp=0x0, ncp=0x0, flags=0) at ../../msdosfs/msdosfs_fat.c:1034 #10 0xc01860b9 in msdosfs_write (ap=0xc8fbee90) at ../../msdosfs/msdosfs_vnops.c:725 #11 0xc017a8d0 in vn_write (fp=0xc0c525c0, uio=0xc8fbeedc, cred=0xc0741900, flags=0, p=0xc8605440) at vnode_if.h:363 #12 0xc0157362 in dofilewrite (p=0xc8605440, fp=0xc0c525c0, fd=4, buf=0x8058100, nbyte=65536, offset=-1, flags=0) at ../../sys/file.h:159 #13 0xc0157267 in write (p=0xc8605440, uap=0xc8fbef80) at ../../kern/sys_generic.c:298 #14 0xc0266b71 in syscall2 (frame={tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 65536, tf_esi = 134578432, tf_ebp = -1077937648, tf_isp = -923013164, tf_ebx = 65536, tf_edx = 4, tf_ecx = 0, tf_eax = 4, tf_trapno = 12, tf_err = 2, tf_eip = 134561480, tf_cs = 31, tf_eflags = 663, tf_esp = -1077937804, tf_ss = 47}) at ../../i386/i386/trap.c:1126 #15 0xc025a7c5 in Xint0x80_syscall () #16 0x8048989 in ?? () #17 0x804851a in ?? () #18 0x8048139 in ?? () (kgdb) up 5 #5 0xc018250b in updatefats (pmp=0xc0c58000, bp=0xc3551760, fatbn=6984) at ../../msdosfs/msdosfs_fat.c:353 353 if (pmp->pm_freeclustercount (kgdb) print pmp $1 = (struct msdosfsmount *) 0x0 (kgdb) list 348 * If we have an FSInfo block, update it. 349 */ 350 if (pmp->pm_fsinfo) { 351 u_long cn = pmp->pm_nxtfree; 352 353 if (pmp->pm_freeclustercount 354 && (pmp->pm_inusemap[cn / N_INUSEBITS] 355 & (1 << (cn % N_INUSEBITS)))) { 356 /* 357 * The cluster indicated in FSInfo isn't free (kgdb) up 1 #6 0xc01829dc in fatchain (pmp=0xc0c58000, start=890233, count=0, fillwith=4294967295) at ../../msdosfs/msdosfs_fat.c:674 674 updatefats(pmp, bp, bn); (kgdb) print pmp->pm_nxtfree $6 = 4294967295 (kgdb) This must be a nonsense value (0xffffffff) (kgdb) print pmp->pm_inusemap[0xffffffff / 32] Cannot access memory at address 0xe0c58ffc. The fault address. As usual crashdumps are available if someone want's to take a closer look this time. -- regards/ Joakim 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?200007191110.EAA42177>