From owner-freebsd-bugs Sun Apr 28 02:00:07 1996 Return-Path: owner-bugs Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id CAA19356 for bugs-outgoing; Sun, 28 Apr 1996 02:00:07 -0700 (PDT) Received: (from gnats@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id CAA19342 Sun, 28 Apr 1996 02:00:04 -0700 (PDT) Resent-Date: Sun, 28 Apr 1996 02:00:04 -0700 (PDT) Resent-Message-Id: <199604280900.CAA19342@freefall.freebsd.org> Resent-From: gnats (GNATS Management) Resent-To: freebsd-bugs Resent-Reply-To: FreeBSD-gnats@freefall.FreeBSD.org, hsu@clinet.fi Received: from hauki.clinet.fi (root@hauki.clinet.fi [194.100.0.1]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id BAA19002 for ; Sun, 28 Apr 1996 01:52:47 -0700 (PDT) Received: from katiska.clinet.fi (root@katiska.clinet.fi [194.100.0.4]) by hauki.clinet.fi (8.7.5/8.6.4) with ESMTP id LAA24922 for ; Sun, 28 Apr 1996 11:52:30 +0300 (EET DST) Received: (root@localhost) by katiska.clinet.fi (8.7.5/8.6.4) id LAA00843; Sun, 28 Apr 1996 11:52:29 +0300 (EET DST) Message-Id: <199604280852.LAA00843@katiska.clinet.fi> Date: Sun, 28 Apr 1996 11:52:29 +0300 (EET DST) From: Heikki Suonsivu Reply-To: hsu@clinet.fi To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: kern/1160: Panic: bad dir Sender: owner-bugs@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >Number: 1160 >Category: kern >Synopsis: Panic: bad dir >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Apr 28 02:00:02 PDT 1996 >Last-Modified: >Originator: Heikki Suonsivu >Organization: Clinet, Espoo, Finland >Release: FreeBSD 2.2-CURRENT i386 >Environment: news server with a full feed. nfs server. Apr 28 11:35:03 news /kernel: FreeBSD 2.2-CURRENT #20: Sun Apr 21 23:59:52 EET DST 1996 Apr 28 11:35:03 news /kernel: hsu@news.clinet.fi:/usr/current/src/sys/compile/CLINETSERVER Apr 28 11:35:03 news /kernel: CPU: Pentium (89.80-MHz 586-class CPU) Apr 28 11:35:03 news /kernel: Origin = "GenuineIntel" Id = 0x525 Stepping=5 Apr 28 11:35:03 news /kernel: Features=0x1bf Apr 28 11:35:03 news /kernel: real memory = 67108864 (65536K bytes) Apr 28 11:35:03 news /kernel: avail memory = 54681600 (53400K bytes) Apr 28 11:35:03 news /kernel: DEVFS: ready for devices Apr 28 11:35:03 news /kernel: Probing for devices on PCI bus 0: Apr 28 11:35:03 news /kernel: chip0 rev 0 on pci0:0 Apr 28 11:35:03 news /kernel: chip1 rev 1 on pci0:1:0 Apr 28 11:35:03 news /kernel: pci0:1:1: Silicon Integrated Systems, device=0x5513, class=storage (ide) int a irq ?? [no driver assigned] Apr 28 11:35:03 news /kernel: ahc0 rev 0 int a irq 10 on pci0:9 Apr 28 11:35:03 news /kernel: ahc0: aic7880 Single Channel, SCSI Id=7, 16 SCBs Apr 28 11:35:03 news /kernel: ahc0 waiting for scsi devices to settle Apr 28 11:35:03 news /kernel: (ahc0:0:0): "SEAGATE ST15230N 0638" type 0 fixed SCSI 2 Apr 28 11:35:03 news /kernel: sd0(ahc0:0:0): Direct-Access 4095MB (8386733 512 byte sectors) Apr 28 11:35:03 news /kernel: sd0(ahc0:0:0): with 3992 cyls, 19 heads, and an average 110 sectors/track Apr 28 11:35:03 news /kernel: (ahc0:1:0): "SEAGATE ST15230N 0638" type 0 fixed SCSI 2 Apr 28 11:35:04 news /kernel: sd1(ahc0:1:0): Direct-Access 4095MB (8386733 512 byte sectors) Apr 28 11:35:04 news /kernel: sd1(ahc0:1:0): with 3992 cyls, 19 heads, and an average 110 sectors/track Apr 28 11:35:04 news /kernel: (ahc0:2:0): "SEAGATE ST15230N 0638" type 0 fixed SCSI 2 Apr 28 11:35:04 news /kernel: sd2(ahc0:2:0): Direct-Access 4095MB (8386733 512 byte sectors) Apr 28 11:35:04 news /kernel: sd2(ahc0:2:0): with 3992 cyls, 19 heads, and an average 110 sectors/track Apr 28 11:35:04 news /kernel: (ahc0:3:0): "SEAGATE ST31200N 9348" type 0 fixed SCSI 2 Apr 28 11:35:04 news /kernel: sd3(ahc0:3:0): Direct-Access 1011MB (2072435 512 byte sectors) Apr 28 11:35:04 news /kernel: sd3(ahc0:3:0): with 2700 cyls, 9 heads, and an average 85 sectors/track Apr 28 11:35:04 news /kernel: de0 rev 35 int a irq 11 on pci0:11 Apr 28 11:35:04 news /kernel: de0: DC21040 [10Mb/s] pass 2.3 Ethernet address 00:c0:95:ec:47:a3 Apr 28 11:35:04 news /kernel: de0: enabling Thinwire/AUI port Apr 28 11:35:04 news /kernel: Probing for devices on the ISA bus: Apr 28 11:35:04 news /kernel: vt0 at 0x60-0x6f irq 1 on motherboard Apr 28 11:35:04 news /kernel: vt0: generic, 80/132 col, color, 8 scr, mf2-kbd, [R3.20-b24] Apr 28 11:35:04 news /kernel: ed0 not found at 0x280 Apr 28 11:35:04 news /kernel: lpt0 not found at 0xffffffff Apr 28 11:35:04 news /kernel: lpt1 not found at 0xffffffff Apr 28 11:35:04 news /kernel: sio0 not found at 0x3f8 Apr 28 11:35:05 news /kernel: sio1 not found at 0x2f8 Apr 28 11:35:05 news /kernel: cy0 not found Apr 28 11:35:05 news /kernel: bt0 not found at 0x330 Apr 28 11:35:05 news /kernel: aha0 not found at 0x330 Apr 28 11:35:05 news /kernel: wdc0 not found at 0x1f0 Apr 28 11:35:05 news /kernel: fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa Apr 28 11:35:05 news /kernel: fdc0: NEC 72065B Apr 28 11:35:05 news /kernel: fd0: 1.44MB 3.5in Apr 28 11:35:05 news /kernel: matcdc0 not found at 0x230 Apr 28 11:35:05 news /kernel: npx0 on motherboard Apr 28 11:35:05 news /kernel: npx0: INT 16 interface Apr 28 11:35:05 news /kernel: changing root device to sd0a Apr 28 11:35:05 news /kernel: devfs ready to run Apr 28 11:35:05 news /kernel: new masks: bio c0000440, tty c0030802, net c0030802 Apr 28 11:35:05 news /kernel: WARNING: / was not properly dismounted. >Description: 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 ac6000 current pcb at 224aa8 panic: bad dir #0 boot (howto=256) at ../../i386/i386/machdep.c:941 941 dumppcb.pcb_ptd = rcr3(); (kgdb) bt #0 boot (howto=256) at ../../i386/i386/machdep.c:941 #1 0xf011ad27 in panic (fmt=0xf01af551 "bad dir") at ../../kern/subr_prf.c:133 #2 0xf01af593 in ufs_dirbad (ip=0xf2f9cb00, offset=8192, how=0xf01ae8f0 "mangled entry") at ../../ufs/ufs/ufs_lookup.c:589 #3 0xf01aedf1 in ufs_lookup (ap=0xefbffe54) at ../../ufs/ufs/ufs_lookup.c:284 #4 0xf0132866 in lookup (ndp=0xefbfff00) at ./vnode_if.h:31 #5 0xf0132380 in namei (ndp=0xefbfff00) at ../../kern/vfs_lookup.c:149 #6 0xf0135c44 in link (p=0xf2dfce00, uap=0xefbfff94, retval=0xefbfff84) at ../../kern/vfs_syscalls.c:894 #7 0xf01cfa4d in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = 9523924, tf_esi = 2, tf_ebp = -272639304, tf_isp = -272629788, tf_ebx = 12222497, tf_edx = -272640954, tf_ecx = -272641424, tf_eax = 9, tf_trapno = 7, tf_err = 7, tf_eip = 134570837, tf_cs = 31, tf_eflags = 582, tf_esp = -272641340, tf_ss = 39}) at ../../i386/i386/trap.c:904 #8 0xf01c7865 in Xsyscall () #9 0xc367 in ?? () #10 0xdc49 in ?? () #11 0x8faf in ?? () #12 0xb9a0 in ?? () #13 0x1096 in ?? () (kgdb) up #1 0xf011ad27 in panic (fmt=0xf01af551 "bad dir") at ../../kern/subr_prf.c:133 133 boot(bootopt); (kgdb) up #2 0xf01af593 in ufs_dirbad (ip=0xf2f9cb00, offset=8192, how=0xf01ae8f0 "mangled entry") at ../../ufs/ufs/ufs_lookup.c:589 589 panic("bad dir"); (kgdb) up #3 0xf01aedf1 in ufs_lookup (ap=0xefbffe54) at ../../ufs/ufs/ufs_lookup.c:284 284 ufs_dirbad(dp, dp->i_offset, "mangled entry"); (kgdb) list 279 ep = (struct direct *)((char *)bp->b_data + entryoffsetnblock); 280 if (ep->d_reclen == 0 || 281 (dirchk && ufs_dirbadentry(vdp, ep, entryoffsetinblck))) { 282 int i; 283 284 ufs_dirbad(dp, dp->i_offset, "mangled entry"); 285 i = DIRBLKSIZ - (entryoffsetinblock & (DIRBLKSI - 1)); 286 dp->i_offset += i; 287 entryoffsetinblock += i; 288 continue; (kgdb) print ep->d_reclen $1 = 0 (kgdb) print dirchk $2 = 1 (kgdb) print vdp $3 = (struct vnode *) 0xf2f94480 (kgdb) print *vdp $4 = {v_flag = 0, v_usecount = 1, v_writecount = 0, v_holdcnt = 3, v_lastr = 0, v_id = 4670, v_mount = 0xf2d29400, v_op = 0xf2c2ad00, v_freelist = {tqe_next = 0xf2f6cc00, tqe_prev = 0xf2f9d7a0}, v_mntvnodes = { le_next = 0xf2f99c80, le_prev = 0xf2f9d7a8}, v_cleanblkhd = { lh_first = 0xf4c47bd8}, v_dirtyblkhd = {lh_first = 0x0}, v_numoutput = 0, v_type = VDIR, v_un = {vu_mountedhere = 0x0, vu_socket = 0x0, vu_specinfo = 0x0, vu_fifoinfo = 0x0}, v_lease = 0x0, v_lastw = 0, v_cstart = 0, v_lasta = 0, v_clen = 0, v_ralen = 0, v_usage = 32, v_maxra = 0, v_object = 0x0, v_tag = VT_UFS, v_data = 0xf2f9cb00} (kgdb) print ep $5 = (struct direct *) 0xf2d23000 (kgdb) print *ep $6 = {d_ino = 0, d_reclen = 0, d_type = 0 '\000', d_namlen = 0 '\000', d_name = '\000' } (kgdb) print entryoffsetinblock $7 = 0 (kgdb) up #4 0xf0132866 in lookup (ndp=0xefbfff00) at ./vnode_if.h:31 31 return (VCALL(dvp, VOFFSET(vop_lookup), &a)); (kgdb) print dvp $8 = (struct vnode *) 0xf2f94480 (kgdb) print *dvp $9 = {v_flag = 0, v_usecount = 1, v_writecount = 0, v_holdcnt = 3, v_lastr = 0, v_id = 4670, v_mount = 0xf2d29400, v_op = 0xf2c2ad00, v_freelist = {tqe_next = 0xf2f6cc00, tqe_prev = 0xf2f9d7a0}, v_mntvnodes = { le_next = 0xf2f99c80, le_prev = 0xf2f9d7a8}, v_cleanblkhd = { lh_first = 0xf4c47bd8}, v_dirtyblkhd = {lh_first = 0x0}, v_numoutput = 0, v_type = VDIR, v_un = {vu_mountedhere = 0x0, vu_socket = 0x0, vu_specinfo = 0x0, vu_fifoinfo = 0x0}, v_lease = 0x0, v_lastw = 0, v_cstart = 0, v_lasta = 0, v_clen = 0, v_ralen = 0, v_usage = 32, v_maxra = 0, v_object = 0x0, v_tag = VT_UFS, v_data = 0xf2f9cb00} (kgdb) print vop_lookup No symbol "vop_lookup" in current context. (kgdb) print a $10 = {a_desc = 0xf02000bc, a_dvp = 0xf2f94480, a_vpp = 0xefbfff10, a_cnp = 0xefbfff24} (kgdb) up #5 0xf0132380 in namei (ndp=0xefbfff00) at ../../kern/vfs_lookup.c:149 149 error = lookup(ndp); (kgdb) print ndp $11 = (struct nameidata *) 0xefbfff00 (kgdb) print *ndp $12 = {ni_dirp = 0xefbfd434 "qc/politique/10119", ni_segflg = UIO_USERSPACE, ni_startdir = 0x0, ni_rootdir = 0xf2c86d00, ni_vp = 0x0, ni_dvp = 0xf2f94480, ni_pathlen = 1, ni_next = 0xf2d3ac12 "", ni_loopcnt = 0, ni_cnd = {cn_nameiop = 1, cn_flags = 49160, cn_proc = 0xf2dfce00, cn_cred = 0xf2dfd080, cn_pnbuf = 0xf2d3ac00 "qc/politique/10119", cn_nameptr = 0xf2d3ac0d "10119", cn_namelen = 5, cn_hash = 252, cn_consume = 0}} (kgdb) up #6 0xf0135c44 in link (p=0xf2dfce00, uap=0xefbfff94, retval=0xefbfff84) at ../../kern/vfs_syscalls.c:894 894 error = namei(&nd); (kgdb) print nd $13 = {ni_dirp = 0xefbfd434 "qc/politique/10119", ni_segflg = UIO_USERSPACE, ni_startdir = 0x0, ni_rootdir = 0xf2c86d00, ni_vp = 0x0, ni_dvp = 0xf2f94480, ni_pathlen = 1, ni_next = 0xf2d3ac12 "", ni_loopcnt = 0, ni_cnd = {cn_nameiop = 1, cn_flags = 49160, cn_proc = 0xf2dfce00, cn_cred = 0xf2dfd080, cn_pnbuf = 0xf2d3ac00 "qc/politique/10119", cn_nameptr = 0xf2d3ac0d "10119", cn_namelen = 5, cn_hash = 252, cn_consume = 0}} (kgdb) up #7 0xf01cfa4d in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = 9523924, tf_esi = 2, tf_ebp = -272639304, tf_isp = -272629788, tf_ebx = 12222497, tf_edx = -272640954, tf_ecx = -272641424, tf_eax = 9, tf_trapno = 7, tf_err = 7, tf_eip = 134570837, tf_cs = 31, tf_eflags = 582, tf_esp = -272641340, tf_ss = 39}) at ../../i386/i386/trap.c:904 904 error = (*callp->sy_call)(p, args, rval); (kgdb) up #8 0xf01c7865 in Xsyscall () (kgdb) down #7 0xf01cfa4d in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = 9523924, tf_esi = 2, tf_ebp = -272639304, tf_isp = -272629788, tf_ebx = 12222497, tf_edx = -272640954, tf_ecx = -272641424, tf_eax = 9, tf_trapno = 7, tf_err = 7, tf_eip = 134570837, tf_cs = 31, tf_eflags = 582, tf_esp = -272641340, tf_ss = 39}) at ../../i386/i386/trap.c:904 904 error = (*callp->sy_call)(p, args, rval); (kgdb) print p $14 = (struct proc *) 0xf2dfce00 (kgdb) print args $15 = {-272639908, -272640972, 0, -272629844, -266512682, 7, 80428, 0} (kgdb) print rval $16 = {0, -272640954} (kgdb) print callp->sy_call $17 = (int (*)()) 0xf0135ba4 (kgdb) print *callp $18 = {sy_narg = 2, sy_call = 0xf0135ba4 } (kgdb) print *p $19 = {p_forw = 0xf024ece0, p_back = 0x0, p_list = {le_next = 0xf2dfa700, le_prev = 0xf2dc3208}, p_cred = 0xf2dd0900, p_fd = 0xf2dfd000, p_stats = 0xf6e1b258, p_limit = 0xf020f950, p_vmspace = 0xf2dfcc00, p_sigacts = 0xf6e1b128, p_flag = 4, p_stat = 2 '\002', p_pad1 = "À­Þ", p_pid = 250, p_pglist = {le_next = 0xf3121800, le_prev = 0xf2dd08e8}, p_pptr = 0xf2c73600, p_sibling = {le_next = 0xf2dfa700, le_prev = 0xf2dffb40}, p_children = {lh_first = 0xf3121800}, p_oppid = 0, p_dupfd = 0, p_estcpu = 268, p_cpticks = 13, p_pctcpu = 1455, p_wchan = 0x0, p_wmesg = 0xf012fd20 "biowait", p_swtime = 11274, p_slptime = 0, p_realtimer = {it_interval = {tv_sec = 0, tv_usec = 0}, it_value = { tv_sec = 0, tv_usec = 0}}, p_rtime = {tv_sec = 812, tv_usec = 528765}, p_uticks = 20015, p_sticks = 82354, p_iticks = 4106, p_traceflag = 0, p_tracep = 0x0, p_siglist = 0, p_textvp = 0xf2dfdb00, p_lock = 0 '\000', p_pad2 = "\000\000", p_locks = 0, p_simple_locks = 0, p_hash = { le_next = 0x0, le_prev = 0xf2c693e8}, p_sigmask = 0, p_sigignore = 410157063, p_sigcatch = 544768, p_priority = 16 '\020', p_usrpri = 113 'q', p_nice = -2 'þ', p_comm = "innd\000tart\000\000\000\000\000\000\000", p_pgrp = 0xf2dd08e0, p_sysent = 0xf0201c50, p_rtprio = {type = 1, prio = 0}, p_addr = 0xf6e1b000, p_md = {md_flags = 0, md_regs = 0xefbfffbc}, p_xstat = 0, p_acflag = 1, p_ru = 0x0} (kgdb) dumps are in ftp://ftp.clinet.fi/pub/FreeBSD/crashdumps/*.66.gz within 15 minutes of submitting this PR... >How-To-Repeat: This has happened approximately twice a day after switching kernel from 28th april. This may have something to do with news filesystem mounts being async (but before this panic I had checked out all the news filesystems repeating until all the problems were gone (fsck does not fix mangled directories correctly, so they need to be clri'd separetely). >Fix: >Audit-Trail: >Unformatted: