Date: Mon, 17 Apr 1995 19:40:05 -0700 From: Heikki Suonsivu <hsu@clinet.fi> To: freebsd-bugs Subject: kern/349: Another dump, bad dir Message-ID: <199504180240.TAA11108@freefall.cdrom.com> In-Reply-To: Your message of Tue, 18 Apr 1995 05:31:28 %2B0300 <199504180231.FAA09245@katiska.clinet.fi>
index | next in thread | previous in thread | raw e-mail
>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<FPU,VME,PSE,MC
E,CX8,APIC>
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 <repeats 11 times>}, 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' <repeats 75 times>}, f_mntfromname = {"/dev/sd1g", '\000' <repeats 81 times>}}, 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:
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199504180240.TAA11108>
