From owner-freebsd-bugs Mon Apr 17 19:40:07 1995 Return-Path: bugs-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id TAA11115 for bugs-outgoing; Mon, 17 Apr 1995 19:40:07 -0700 Received: (from gnats@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id TAA11108 ; Mon, 17 Apr 1995 19:40:05 -0700 Date: Mon, 17 Apr 1995 19:40:05 -0700 Message-Id: <199504180240.TAA11108@freefall.cdrom.com> From: Heikki Suonsivu Reply-To: Heikki Suonsivu To: freebsd-bugs Subject: kern/349: Another dump, bad dir In-Reply-To: Your message of Tue, 18 Apr 1995 05:31:28 +0300 <199504180231.FAA09245@katiska.clinet.fi> Sender: bugs-owner@FreeBSD.org Precedence: bulk >Number: 349 >Category: kern >Synopsis: Panic with bad dir >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs (FreeBSD bugs mailing list) >State: open >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Apr 17 19:40:03 1995 >Originator: Heikki Suonsivu >Organization: Helsinki University of Technology, Finland >Release: FreeBSD 2.1.0-Development i386 >Environment: P60 as an nntp server in addition to normal work: to dev 4 01, offset 344064 dump 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 INETSERVER CPU: 54-MHz Pentium 510\60 or 567\66 (Pentium-class CPU) Origin = "GenuineIntel" Id = 0x515 Stepping=5 Features=0x1bf real memory = 33161216 (8096 pages) avail memory = 30240768 (7383 pages) Probing for devices on the ISA bus: sc0 at 0x60-0x6f irq 1 on motherboard sc0: VGA color <16 virtual consoles, flags=0x0> ed0 at 0x280-0x29f irq 5 on isa ed0: address 00:4f:56:00:93:c4, type NE2000 (16 bit) bpf: ed0 attached lpt0 not found at 0x3bc sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16450 sio1 not found at 0x2f8 sio2 not found at 0x3e8 sio3 not found at 0x2e8 pca0 on isa pca0: PC speaker audio driver bt0: Bt946C/ 0-PCI/EISA/VLB(32bit) bus bt0: reading board settings, busmastering, int=11 bt0: version 4.23, sync, parity, 32 mbxs, 32 ccbs bt0: targ 0 sync rate=10.00MB/s(100ns), offset=15 bt0: targ 1 sync rate=10.00MB/s(100ns), offset=15 bt0: Enabling Round robin scheme bt0 at 0x330 irq 11 on isa bt0 waiting for scsi devices to settle (bt0:0:0): "IBM 0662S12 !O 2 23" type 0 fixed SCSI 2 sd0(bt0:0:0): Direct-Access 1003MB (2055035 512 byte sectors) (bt0:1:0): "SEAGATE ST32550N 0012" type 0 fixed SCSI 2 sd1(bt0:1:0): Direct-Access 2047MB (4194058 512 byte sectors) aha0 not probed due to I/O address conflict with bt0 at 0x330 wdc0 not found at 0x1f0 wdc1 not found at 0x170 fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa fdc0: NEC 765 fd0: 1.44MB 3.5in mcd0: timeout getting status mcd0 not found at 0x300 le0: no board found at 0x300 le0 not found at 0x300 npx0 on motherboard npx0: INT 16 interface matcd0 not found at 0xffffffff matcd1 not found at 0xffffffff matcd2 not found at 0xffffffff matcd3 not found at 0xffffffff bio_imask c0000840 tty_imask c0030032 net_imask c0030032 Probing for devices on the pci0 bus: configuration mode 2 allows 16 devices. pci0:0: vendor=0x10b9, device=0x1451, class=bridge [not supported] pci0:2: vendor=0x10b9, device=0x1449, class=old [not supported] pci0:3: vendor=0x104b, device=0x1040, class=storage [not supported] map(10): io(ffe4) changing root device to sd0a sd0s1: start 0, end = 2055034, size 2055035: OK sd1s1: start 0, end = 4194057, size 4194058: OK sd0s1: start 0, end = 2055034, size 2055035: OK bpf: ds0 attached bpf: lo0 attached bpf: ppp0 attached bpf: ppp1 attached bpf: ppp2 attached bpf: ppp3 attached bpf: ppp4 attached bpf: ppp5 attached bpf: ppp6 attached bpf: ppp7 attached bpf: ppp8 attached bpf: ppp9 attached bpf: ppp10 attached bpf: ppp11 attached bpf: ppp12 attached bpf: ppp13 attached bpf: ppp14 attached bpf: ppp15 attached bpf: ppp16 attached bpf: ppp17 attached bpf: ppp18 attached bpf: ppp19 attached bpf: ppp20 attached bpf: ppp21 attached bpf: ppp22 attached bpf: ppp23 attached bpf: ppp24 attached bpf: ppp25 attached bpf: ppp26 attached bpf: ppp27 attached bpf: ppp28 attached bpf: ppp29 attached bpf: ppp30 attached bpf: ppp31 attached bpf: sl0 attached bpf: sl1 attached bpf: sl2 attached bpf: sl3 attached bpf: sl4 attached bpf: sl5 attached bpf: sl6 attached bpf: sl7 attached bpf: sl8 attached bpf: sl9 attached bpf: sl10 attached bpf: sl11 attached bpf: sl12 attached bpf: sl13 attached bpf: sl14 attached bpf: sl15 attached bpf: tun0 attached sd0s1: start 0, end = 2055034, size 2055035: OK sd1s1: start 0, end = 4194057, size 4194058: OK sd1s1: start 0, end = 4194057, size 4194058: OK <6>pid 9175: laske: uid 1090: exited on signal 11 <6>pid 9191: laske: uid 1090: exited on signal 11 <6>pid 9229: laske: uid 1090: exited on signal 11 <6>pid 12614: tcsh: uid 0: exited on signal 11 <6>pid 1244: tcsh: uid 105: exited on signal 11 <6>pid 15641: hangman: uid 7: exited on signal 11 <6>pid 15643: hangman: uid 7: exited on signal 11 <3>mb_map full <6>pid 17165: irc-2.8: uid 1457: exited on signal 10 <6>pid 16951: irc-2.8: uid 1457: exited on signal 11 Second bad /m/katiska/news: bad dir ino 811082 at offset 2032: mangled entry panic: bad dir syncing disks... 44 44 39 32 23 8 3 3 3 3 3 3 3 3 3 3 3 3 3 3 giving up >Description: Current directory is /var/crash/ Reading symbol data from /var/crash/kernel.20...done. (kgdb) bt (kgdb) core vmcore.20 IdlePTD 245000 panic: bad dir current pcb at 1f649c Reading in symbols for ../../i386/i386/machdep.c...done. (kgdb) bt #0 boot (arghowto=256) (../../i386/i386/machdep.c line 860) #1 0xf01145c3 in panic (...) #2 0xf019aca7 in ufs_dirbad (...) #3 0xf019a4bd in ufs_lookup (...) #4 0xf012930f in lookup (...) #5 0xf0128ea0 in namei (...) #6 0xf012e709 in vn_open (...) #7 0xf012bf03 in open (...) #8 0xf01b8fad in syscall (...) (kgdb) directory /usr/src/sys/i386/compile /usr/src/sys/i386/compile: No such file or directory. (kgdb) directory /usr/src/sys/compile/CLINETSERVER Source directories searched: /m/katiska/news/crash:/usr/src/sys/compile/CLINETSERVER (kgdb) list Reading in symbols for ../../kern/init_main.c...done. 121 /* 122 * System startup; initialize the world, create process 0, mount root 123 * filesystem, and fork to create init and pagedaemon. Most of the 124 * hard work is done in the lower-level initialization routines including 125 * startup(), which does memory initialization and autoconfiguration. 126 */ 127 void 128 main(framep) 129 void *framep; 130 { (kgdb) down Bottom (i.e., innermost) frame selected; you cannot go down. (kgdb) up Reading in symbols for ../../kern/subr_prf.c...done. #1 0xf01145c3 in panic (fmt=(char *) 0xf019ac65 "bad dir") (../../kern/subr_prf.c line 128) (kgdb) list 123 kdbpanic(); 124 #endif 125 #ifdef DDB 126 Debugger ("panic"); 127 #endif 128 boot(bootopt); 129 } 130 131 /* 132 * Warn that a system table is full. (kgdb) up Reading in symbols for ../../ufs/ufs/ufs_lookup.c...done. #2 0xf019aca7 in ufs_dirbad (ip=(struct inode *) 0xf0ad0200, offset=2032, how=(char *) 0xf0199fd0 "mangled entry") (../../ufs/ufs/ufs_lookup.c line 587) (kgdb) list 582 583 mp = ITOV(ip)->v_mount; 584 (void)printf("%s: bad dir ino %ld at offset %ld: %s\n", 585 mp->mnt_stat.f_mntonname, ip->i_number, offset, how); 586 if ((mp->mnt_stat.f_flags & MNT_RDONLY) == 0) 587 panic("bad dir"); 588 } 589 590 /* 591 * Do consistency checking on a directory entry: (kgdb) print *i No symbol "i" in current context. (kgdb) print *ip Cannot read memory: address 0x0 out of bounds. (kgdb) print ip $1 = (struct inode *) 0x0 (kgdb) bt #0 boot (arghowto=256) (../../i386/i386/machdep.c line 860) #1 0xf01145c3 in panic (fmt=(char *) 0xf019ac65 "bad dir") (../../kern/subr_prf.c line 128) #2 0xf019aca7 in ufs_dirbad (ip=(struct inode *) 0xf0ad0200, offset=2032, how=(char *) 0xf0199fd0 "mangled entry") (../../ufs/ufs/ufs_lookup.c line 587) #3 0xf019a4bd in ufs_lookup (ap=(struct vop_lookup_args *) 0xefbffd80) (../../ufs/ufs/ufs_lookup.c line 282) #4 0xf012930f in lookup (...) #5 0xf0128ea0 in namei (...) #6 0xf012e709 in vn_open (...) #7 0xf012bf03 in open (...) #8 0xf01b8fad in syscall (...) (kgdb) print *(struct inode *) 0xf0ad0200 $2 = {i_next = 0x0, i_prev = 0xf0cb1300, i_vnode = 0xf0b47080, i_devvp = 0xf0a7a200, i_flag = 0x00000008, i_dev = 0x0000040e, i_number = 0x000c604a, inode_u = {fs = 0xf0a7f800, lfs = 0xf0a7f800}, i_dquot = {0x0, 0x0}, i_modrev = 0xce8eead3, i_lockf = 0x0, i_lockholder = 11834, i_lockwaiter = 0, i_count = 32, i_endoff = 28160, i_diroff = 0, i_offset = 2032, i_ino = 0x000c6087, i_reclen = 0x00000014, i_spare = {0 }, i_din = {di_mode = 0x41ed, di_nlink = 4, di_u = {oldids = {0x0000, 0x0000}, inumber = 0x00000000}, di_size = 0x6e00, di_atime = {ts_sec = 798112277, ts_nsec = 0}, di_mtime = {ts_sec = 798135285, ts_nsec = 0}, di_ctime = {ts_sec = 798135285, ts_nsec = 0}, di_db = {3736360, 3737288, 3738392, 3743048, 3768136, 4154232, 4163264, 0, 0, 0, 0, 0}, di_ib = {0, 0, 0}, di_flags = 0x00000000, di_blocks = 55, di_gen = 796160418, di_uid = 0x00000006, di_gid = 0x00000006, di_spare = {0, 0}}} (kgdb) where #0 boot (arghowto=256) (../../i386/i386/machdep.c line 860) #1 0xf01145c3 in panic (fmt=(char *) 0xf019ac65 "bad dir") (../../kern/subr_prf.c line 128) #2 0xf019aca7 in ufs_dirbad (ip=(struct inode *) 0xf0ad0200, offset=2032, how=(char *) 0xf0199fd0 "mangled entry") (../../ufs/ufs/ufs_lookup.c line 587) #3 0xf019a4bd in ufs_lookup (ap=(struct vop_lookup_args *) 0xefbffd80) (../../ufs/ufs/ufs_lookup.c line 282) #4 0xf012930f in lookup (...) #5 0xf0128ea0 in namei (...) #6 0xf012e709 in vn_open (...) #7 0xf012bf03 in open (...) #8 0xf01b8fad in syscall (...) (kgdb) up #3 0xf019a4bd in ufs_lookup (ap=(struct vop_lookup_args *) 0xefbffd80) (../../ufs/ufs/ufs_lookup.c line 282) (kgdb) down #2 0xf019aca7 in ufs_dirbad (ip=(struct inode *) 0xf0ad0200, offset=2032, how=(char *) 0xf0199fd0 "mangled entry") (../../ufs/ufs/ufs_lookup.c line 587) (kgdb) print offset $3 = 2032 (kgdb) print how $4 = (char *) 0xf0199fd0 "mangled entry" (kgdb) up #3 0xf019a4bd in ufs_lookup (ap=(struct vop_lookup_args *) 0xefbffd80) (../../ufs/ufs/ufs_lookup.c line 282) (kgdb) down #2 0xf019aca7 in ufs_dirbad (ip=(struct inode *) 0xf0ad0200, offset=2032, how=(char *) 0xf0199fd0 "mangled entry") (../../ufs/ufs/ufs_lookup.c line 587) (kgdb) print mp $5 = (struct mount *) 0xf0a04400 (kgdb) print *mp $6 = {mnt_list = {tqe_next = 0xf0af9e00, tqe_prev = 0xf0a28800}, mnt_op = 0xf01e7d90, mnt_vnodecovered = 0xf0a7a680, mnt_vnodelist = {lh_first = 0xf0abed80}, mnt_flag = 4416, mnt_maxsymlinklen = 60, mnt_stat = {f_type = 1, f_flags = 4352, f_bsize = 512, f_iosize = 4096, f_blocks = 3961139, f_bfree = 283557, f_bavail = 85500, f_files = 911838, f_ffree = 486998, f_fsid = {val = {1038, 1}}, f_spare = {0, 0, 0, 0, 0, 0, 0, 0, 0}, f_mntonname = {"/m/katiska/news", '\000' }, f_mntfromname = {"/dev/sd1g", '\000' }}, mnt_data = 0xf0a28400, mnt_vfc = 0xf01e7dc0} (kgdb) up #3 0xf019a4bd in ufs_lookup (ap=(struct vop_lookup_args *) 0xefbffd80) (../../ufs/ufs/ufs_lookup.c line 282) (kgdb) print ep $7 = (struct direct *) 0xf30907f0 (kgdb) print *ep $8 = {d_ino = 0x000c5d43, d_reclen = 0x0010, d_type = 0x08, d_namlen = 0x06, d_name = {"1042\000\000\000\000me\n\000\020\000\b\006104246\000\000g]\f\000\020\000\b\006104247\000\000i]\f\000\020\000\b\006104248\000\000m]\f\000\020\000\b\006104249\000\000\376Z\f\000\020\000\b\006104293\000\000p]\f\000\020\000\b\006104250\000\000\245e\n\000\020\000\b\006104251\000\000\250e\n\000\020\000\b\006104252\000\000\177]\f\000\020\000\b\006104253\000\000\202]\f\000\020\000\b\006104254\000\000\204]\f\000\020\000\b\006104255\000\000\207]\f\000\020\000\b\006104256\000\000"...}} (kgdb) list 277 ep = (struct direct *)((char *)bp->b_data + entryoffsetinblock); 278 if (ep->d_reclen == 0 || 279 (dirchk && ufs_dirbadentry(vdp, ep, entryoffsetinblock))) { 280 int i; 281 282 ufs_dirbad(dp, dp->i_offset, "mangled entry"); 283 i = DIRBLKSIZ - (entryoffsetinblock & (DIRBLKSIZ - 1)); 284 dp->i_offset += i; 285 entryoffsetinblock += i; 286 continue; (kgdb) print ap $9 = (struct vop_lookup_args *) 0x0 (kgdb) bt #0 boot (arghowto=256) (../../i386/i386/machdep.c line 860) #1 0xf01145c3 in panic (fmt=(char *) 0xf019ac65 "bad dir") (../../kern/subr_prf.c line 128) #2 0xf019aca7 in ufs_dirbad (ip=(struct inode *) 0xf0ad0200, offset=2032, how=(char *) 0xf0199fd0 "mangled entry") (../../ufs/ufs/ufs_lookup.c line 587) #3 0xf019a4bd in ufs_lookup (ap=(struct vop_lookup_args *) 0xefbffd80) (../../ufs/ufs/ufs_lookup.c line 282) #4 0xf012930f in lookup (...) #5 0xf0128ea0 in namei (...) #6 0xf012e709 in vn_open (...) #7 0xf012bf03 in open (...) #8 0xf01b8fad in syscall (...) (kgdb) print *(struct vop_lookup_args *) 0xefbffd80 $10 = {a_desc = 0xf01e10dc, a_dvp = 0xf0b47080, a_vpp = 0xefbffef8, a_cnp = 0xefbfff0c} (kgdb) up Reading in symbols for ../../kern/vfs_lookup.c...done. #4 0xf012930f in lookup (ndp=(struct nameidata *) 0xefbffee8) (./vnode_if.h line 27) (kgdb) print *a Attempt to take contents of a non-pointer value. (kgdb) print a $11 = {a_desc = 0xf01e10dc, a_dvp = 0xf0b47080, a_vpp = 0xefbffef8, a_cnp = 0xefbfff0c} (kgdb) up #5 0xf0128ea0 in namei (ndp=(struct nameidata *) 0xefbffee8) (../../kern/vfs_lookup.c line 147) (kgdb) print ndp $12 = (struct nameidata *) 0xefbffee8 (kgdb) print *ndp $13 = {ni_dirp = 0xefbfd898 "sci/electronics/104811", ni_segflg = UIO_USERSPACE, ni_startdir = 0x0, ni_rootdir = 0xf0a27080, ni_vp = 0x0, ni_dvp = 0xf0b47080, ni_pathlen = 1, ni_next = 0xf0aef016 , ni_loopcnt = 0x00000000, ni_cnd = {cn_nameiop = 0x00000001, cn_flags = 0x0000c04c, cn_proc = 0xf0bc2c00, cn_cred = 0xf0dad100, cn_pnbuf = 0xf0aef000 "sci/electronics/104811", cn_nameptr = 0xf0aef010 "104811", cn_namelen = 6, cn_hash = 0x0000012f, cn_consume = 0}} (kgdb) u The program is not being run. (kgdb) up Reading in symbols for ../../kern/vfs_vnops.c...done. #6 0xf012e709 in vn_open (ndp=(struct nameidata *) 0xefbffee8, fmode=1538, cmode=436) (../../kern/vfs_vnops.c line 82) (kgdb) print fmode $14 = 1538 (kgdb) set radix 16 No symbol "radix" in current context. (kgdbprint/x fmode $15 = 0x00000602 (kgdb) print *ndp $16 = {ni_dirp = 0xefbfd898 "sci/electronics/104811", ni_segflg = UIO_USERSPACE, ni_startdir = 0x0, ni_rootdir = 0xf0a27080, ni_vp = 0x0, ni_dvp = 0xf0b47080, ni_pathlen = 1, ni_next = 0xf0aef016 , ni_loopcnt = 0x00000000, ni_cnd = {cn_nameiop = 0x00000001, cn_flags = 0x0000c04c, cn_proc = 0xf0bc2c00, cn_cred = 0xf0dad100, cn_pnbuf = 0xf0aef000 "sci/electronics/104811", cn_nameptr = 0xf0aef010 "104811", cn_namelen = 6, cn_hash = 0x0000012f, cn_consume = 0}} (kgdb) print /x cmode $17 = 0x000001b4 (kgdb) up Reading in symbols for ../../kern/vfs_syscalls.c...done. #7 0xf012bf03 in open (p=(struct proc *) 0xf0bc2c00, uap=(struct open_args *) 0xefbfff94, retval=(int *) 0xefbfff8c) (../../kern/vfs_syscalls.c line 635) (kgdb) print *p $18 = {p_forw = 0xf0227dd0, p_back = 0x0, p_next = 0xf0c18c00, p_prev = 0xf0ca0f08, p_cred = 0xf0e2bd00, p_fd = 0xf0d33c80, p_stats = 0xf4676288, p_limit = 0xf022ecd4, p_vmspace = 0xf0ba5d00, p_sigacts = 0xf467615c, p_flag = 4, p_stat = 2, p_pad1 = {"\300\255\336"}, p_pid = 11834, p_hash = 0xf0adf000, p_pgrpnxt = 0xf0d3ee00, p_pptr = 0xf0a16200, p_osptr = 0xf0caac00, p_ysptr = 0xf0bcd500, p_cptr = 0xf0d3ee00, p_oppid = 0, p_dupfd = -20, p_estcpu = 0x0000014d, p_cpticks = 78, p_pctcpu = 0x000003b2, p_wchan = 0x0, p_wmesg = 0xf0126b18 "biowait", p_swtime = 0x00003dae, p_slptime = 0x00000000, p_realtimer = {it_interval = {tv_sec = 0, tv_usec = 0}, it_value = {tv_sec = 0, tv_usec = 0}}, p_rtime = {tv_sec = 1016, tv_usec = 660532}, p_uticks = 0x9218, p_sticks = 0x13a35, p_iticks = 0x3a65, p_traceflag = 0, p_tracep = 0x0, p_siglist = 0, p_textvp = 0xf0d97700, p_lock = 0, p_pad2 = {"\000\000\000"}, p_spare = {0, 0}, p_sigmask = 0x00000000, p_sigignore = 0x18408000, p_sigcatch = 0x0! 0085000, p_priority = 0x10, p_usrpri = 0x7f, p_nice = 4, p_comm = {"innd\000tart\000\000\000\000\000\000\000\000"}, p_pgrp = 0xf0ea3580, p_sysent = 0xf01e2620, p_rtprio = {type = 0x0001, prio = 0x0000}, p_thread = 0, p_addr = 0xf4676000, p_md = {md_flags = 6, md_regs = 0xefbfffbc}, p_xstat = 0x0000, p_acflag = 0x0001, p_ru = 0x0} (kgdb) print *uap $19 = {path = 0xefbfd898 "sci/electronics/104811", flags = 1537, mode = 436} (kgdb) up Reading in symbols for ../../i386/i386/trap.c...done. #8 0xf01b8fad in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = 160428, tf_esi = 0, tf_ebp = -272641292, tf_isp = -272629788, tf_ebx = 13017094, tf_edx = 104, tf_ecx = 5654, tf_eax = 5, tf_trapno = 663, tf_err = 663, tf_eip = 134445269, tf_cs = 31, tf_eflags = 663, tf_esp = -272641652, tf_ss = 39}) (../../i386/i386/trap.c line 828) (kgdb) up Initial frame selected; you cannot go up. (kgdb) list 823 ktrsyscall(p->p_tracep, code, callp->sy_narg, args); 824 #endif 825 rval[0] = 0; 826 rval[1] = frame.tf_edx; 827 828 error = (*callp->sy_call)(p, args, rval); 829 830 switch (error) { 831 832 case 0: (kgdb) down #7 0xf012bf03 in open (p=(struct proc *) 0xf0bc2c00, uap=(struct open_args *) 0xefbfff94, retval=(int *) 0xefbfff8c) (../../kern/vfs_syscalls.c line 635) (kgdb) list 630 fp = nfp; 631 flags = FFLAGS(uap->flags); 632 cmode = ((uap->mode &~ fdp->fd_cmask) & ALLPERMS) &~ S_ISTXT; 633 NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, uap->path, p); 634 p->p_dupfd = -indx - 1; /* XXX check for fdopen */ 635 error = vn_open(&nd, flags, cmode); 636 if (error) { 637 ffree(fp); 638 if ((error == ENODEV || error == ENXIO) && 639 p->p_dupfd >= 0 && /* XXX from fdopen */ (kgdb) down #6 0xf012e709 in vn_open (ndp=(struct nameidata *) 0xefbffee8, fmode=1538, cmode=436) (../../kern/vfs_vnops.c line 82) (kgdb) list 77 if (fmode & O_CREAT) { 78 ndp->ni_cnd.cn_nameiop = CREATE; 79 ndp->ni_cnd.cn_flags = LOCKPARENT | LOCKLEAF; 80 if ((fmode & O_EXCL) == 0) 81 ndp->ni_cnd.cn_flags |= FOLLOW; 82 error = namei(ndp); 83 if (error) 84 return (error); 85 if (ndp->ni_vp == NULL) { 86 VATTR_NULL(vap); (kgdb) down #5 0xf0128ea0 in namei (ndp=(struct nameidata *) 0xefbffee8) (../../kern/vfs_lookup.c line 147) (kgdb) list 142 } 143 dp = ndp->ni_rootdir; 144 VREF(dp); 145 } 146 ndp->ni_startdir = dp; 147 error = lookup(ndp); 148 if (error) { 149 FREE(cnp->cn_pnbuf, M_NAMEI); 150 return (error); 151 } (kgdb) down #4 0xf012930f in lookup (ndp=(struct nameidata *) 0xefbffee8) (./vnode_if.h line 27) (kgdb) list 22 23 a.a_desc = VDESC(vop_lookup); 24 a.a_dvp = dvp; 25 a.a_vpp = vpp; 26 a.a_cnp = cnp; 27 return (VCALL(dvp, VOFFSET(vop_lookup), &a)); 28 } 29 struct vop_create_args { 30 struct vnodeop_desc *a_desc; 31 struct vnode *a_dvp; (kgdb) down #3 0xf019a4bd in ufs_lookup (ap=(struct vop_lookup_args *) 0xefbffd80) (../../ufs/ufs/ufs_lookup.c line 282) (kgdb) list 277 ep = (struct direct *)((char *)bp->b_data + entryoffsetinblock); 278 if (ep->d_reclen == 0 || 279 (dirchk && ufs_dirbadentry(vdp, ep, entryoffsetinblock))) { 280 int i; 281 282 ufs_dirbad(dp, dp->i_offset, "mangled entry"); 283 i = DIRBLKSIZ - (entryoffsetinblock & (DIRBLKSIZ - 1)); 284 dp->i_offset += i; 285 entryoffsetinblock += i; 286 continue; (kgdb) down #2 0xf019aca7 in ufs_dirbad (ip=(struct inode *) 0xf0ad0200, offset=2032, how=(char *) 0xf0199fd0 "mangled entry") (../../ufs/ufs/ufs_lookup.c line 587) (kgdb) list 582 583 mp = ITOV(ip)->v_mount; 584 (void)printf("%s: bad dir ino %ld at offset %ld: %s\n", 585 mp->mnt_stat.f_mntonname, ip->i_number, offset, how); 586 if ((mp->mnt_stat.f_flags & MNT_RDONLY) == 0) 587 panic("bad dir"); 588 } 589 590 /* 591 * Do consistency checking on a directory entry: (kgdb) down #1 0xf01145c3 in panic (fmt=(char *) 0xf019ac65 "bad dir") (../../kern/subr_prf.c line 128) (kgdb) list 123 kdbpanic(); 124 #endif 125 #ifdef DDB 126 Debugger ("panic"); 127 #endif 128 boot(bootopt); 129 } 130 131 /* 132 * Warn that a system table is full. (kgdb) down #0 boot (arghowto=256) (../../i386/i386/machdep.c line 860) (kgdb) list 855 printf("Please press any key to reboot.\n\n"); 856 cngetc(); 857 } else { 858 if (howto & RB_DUMP) { 859 savectx(&dumppcb, 0); 860 dumppcb.pcb_ptd = rcr3(); 861 dumpsys(); 862 863 if (PANIC_REBOOT_WAIT_TIME != 0) { 864 if (PANIC_REBOOT_WAIT_TIME != -1) { (kgdb) down Bottom (i.e., innermost) frame selected; you cannot go down. (kgdb) The file (bad dir?) seems to be ok, as is the directory (other than lots of files). hsu#katiska.clinet.fi Tue 25: cd /m/katiska/news/news/sci/ hsu#katiska.clinet.fi Tue 26: cd electronics/ hsu#katiska.clinet.fi Tue 27: L 104811 -rw-rw-r-- 1 news news 2119 Apr 17 19:57 104811 hsu#katiska.clinet.fi Tue 28: >How-To-Repeat: We get panics at rate of 1-4 a day. >Fix: Don't know. >Audit-Trail: >Unformatted: