Date: Wed, 19 Feb 1997 18:18:03 +0200 (EET) From: Heikki Suonsivu <hsu@clinet.fi> To: FreeBSD-gnats-submit@freebsd.org Subject: kern/2773: bad dir Message-ID: <199702191618.SAA04519@news.clinet.fi> Resent-Message-ID: <199702191620.IAA29797@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 2773 >Category: kern >Synopsis: bad dir panic >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Feb 19 08:20:04 PST 1997 >Last-Modified: >Originator: Heikki Suonsivu >Organization: Clinet, Espoo, Finland >Release: FreeBSD 2.2-GAMMA i386 >Environment: 2.2 news server, 2940, 128M, 7 * 3G quantum fb. >Description: hsu#news.clinet.fi Wed 2: gdb -k kernel.2 vmcore.2 GDB is free software and you are welcome to 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. GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free Software Foundation, Inc... IdlePTD b21000 current pcb at 0x21b3fc panic: from debugger #0 boot (howto=256) at ../../kern/kern_shutdown.c:243 243 dumppcb.pcb_cr3 = rcr3(); (kgdb) bt #0 boot (howto=256) at ../../kern/kern_shutdown.c:243 #1 0xf0116013 in panic (fmt=0xf0101439 "from debugger") at ../../kern/kern_shutdown.c:367 #2 0xf0101455 in db_panic (dummy1=-266634537, dummy2=0, dummy3=-1, dummy4=0xefbffc0c "") at ../../ddb/db_command.c:436 #3 0xf0101345 in db_command (last_cmdp=0xf020bb24, cmd_table=0xf020b974, aux_cmd_tablep=0xf0255d00) at ../../ddb/db_command.c:333 #4 0xf01014c2 in db_command_loop () at ../../ddb/db_command.c:458 #5 0xf0103c88 in db_trap (type=12, code=0) at ../../ddb/db_trap.c:73 #6 0xf01cfccb in kdb_trap (type=12, code=0, regs=0xefbffd50) at ../../i386/i386/db_interface.c:126 #7 0xf01d953f in trap_fatal (frame=0xefbffd50) at ../../i386/i386/trap.c:738 #8 0xf01d9038 in trap_pfault (frame=0xefbffd50, usermode=0) at ../../i386/i386/trap.c:653 #9 0xf01d8cd7 in trap (frame={tf_es = 16, tf_ds = 16, tf_edi = 8191, tf_esi = -169903616, tf_ebp = -272630236, tf_isp = -272630408, tf_ebx = -132091846, tf_edx = -142553356, tf_ecx = 49210, tf_eax = 0, tf_trapno = 12, tf_err = 0, tf_eip = -266634537, tf_cs = 8, tf_eflags = 66182, tf_esp = -174733312, tf_ss = -272630176}) at ../../i386/i386/trap.c:311 #10 0xf01b7ad7 in ufs_lookup (ap=0xefbffe60) at ../../ufs/ufs/ufs_lookup.c:279 #11 0xf0134299 in lookup (ndp=0xefbfff0c) at vnode_if.h:31 #12 0xf0133ddb in namei (ndp=0xefbfff0c) at ../../kern/vfs_lookup.c:156 #13 0xf01379b9 in unlink (p=0xf58d1400, uap=0xefbfff94, retval=0xefbfff84) at ../../kern/vfs_syscalls.c:986 #14 0xf01d97f7 in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = 0, tf_esi = 20047930, tf_ebp = -272642264, tf_isp = -272629788, tf_ebx = 20047947, tf_edx = 20047908, tf_ecx = 1801, tf_eax = 10, tf_trapno = 7, tf_err = 7, tf_eip = 134834753, tf_cs = 31, tf_eflags = 582, tf_esp = -272642564, tf_ss = 39}) at ../../i386/i386/trap.c:892 #15 0x8096a41 in ?? () #16 0x32fe in ?? () #17 0x53dc in ?? () #18 0xcfeb in ?? () #19 0xedc7 in ?? () #20 0xf477 in ?? () #21 0x99eb in ?? () #22 0xc592 in ?? () #23 0x1096 in ?? () (kgdb) frame 10 #10 0xf01b7ad7 in ufs_lookup (ap=0xefbffe60) at ../../ufs/ufs/ufs_lookup.c:279 279 ep = (struct direct *)((char *)bp->b_data + entryoffsetinblock); (kgdb) list 274 * Full validation checks are slow, so we only check 275 * enough to insure forward progress through the 276 * directory. Complete checks can be run by patching 277 * "dirchk" to be true. 278 */ 279 ep = (struct direct *)((char *)bp->b_data + entryoffsetinblock); 280 if (ep->d_reclen == 0 || 281 (dirchk && ufs_dirbadentry(vdp, ep, entryoffsetinblock))) { 282 int i; 283 (kgdb) print ep $1 = (struct direct *) 0xf820703a (kgdb) print *ep Cannot access memory at address 0xf820703a. (kgdb) print bp $2 = (struct buf *) 0xf780cef4 (kgdb) print *bp $3 = {b_hash = {le_next = 0xf77e5b9c, le_prev = 0xf77e3784}, b_vnbufs = { le_next = 0xf78131c8, le_prev = 0xf595c830}, b_freelist = { tqe_next = 0xf78169a4, tqe_prev = 0xf022bb0c}, b_act = {tqe_next = 0x0, tqe_prev = 0xf57b91d4}, b_proc = 0x0, b_flags = 1049104, b_qindex = 0, b_usecount = 4 '\004', b_error = 0, b_bufsize = 8192, b_bcount = 8192, b_resid = 0, b_dev = 1132, b_un = { b_addr = 0xf8205000 "Path: news.clinet.fi!news.cs.hut.fi!news.funet.fi!newsfeed.sunet.se!news00.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!oleane!newsxfer3.itd.umich.edu!news.bbnplanet.com!su-news-hub1.bbnplane"...}, b_kvabase = 0xf8205000 "Path: news.clinet.fi!news.cs.hut.fi!news.funet.fi!newsfeed.sunet.se!news00.sunet.se!sunic!mn6.swip.net!plug.news.pipex.net!pipex!oleane!newsxfer3.itd.umich.edu!news.bbnplanet.com!su-news-hub1.bbnplane"..., b_kvasize = 8192, b_saveaddr = 0x0, b_lblkno = 5, b_blkno = 760176, b_iodone = 0, b_iodone_chain = 0x0, b_vp = 0xf595c800, b_dirtyoff = 0, b_dirtyend = 0, b_rcred = 0x0, b_wcred = 0x0, b_validoff = 0, b_validend = 0, b_pblkno = 760176, b_savekva = 0x0, b_driver1 = 0x0, b_driver2 = 0x0, b_spc = 0x0, b_cluster = {cluster_head = { tqh_first = 0xf78169a4, tqh_last = 0xf7813258}, cluster_entry = { tqe_next = 0xf78169a4, tqe_prev = 0xf7813258}}, b_pages = {0xf0c3e3e8, 0xf0c08a84, 0x0 <repeats 14 times>}, b_npages = 1016327} (kgdb) print entryoffsetinblock $4 = 8250 (kgdb) dumps available on request >How-To-Repeat: run a busy news server >Fix: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199702191618.SAA04519>