Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Feb 1997 18:05:57 +0200 (EET)
From:      Heikki Suonsivu <hsu@clinet.fi>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/2771: panic: bad dir
Message-ID:  <199702191605.SAA03914@news.clinet.fi>
Resent-Message-ID: <199702191610.IAA29427@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         2771
>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:   Wed Feb 19 08:10:04 PST 1997
>Last-Modified:
>Originator:     Heikki Suonsivu
>Organization:
Clinet, Espoo, Finland
>Release:        FreeBSD 2.2-GAMMA i386
>Environment:

2.2, news server, 128M, 2940

>Description:

hsu#news.clinet.fi Wed 1: gdb -k kernel.4 vmcore.4
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 271000
current pcb at 0x210c98
panic: bad dir
#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  0xf0112402 in panic (fmt=0xf01b37d1 "bad dir")
    at ../../kern/kern_shutdown.c:367
#2  0xf01b3813 in ufs_dirbad (ip=0xf494ab00, offset=49210, 
    how=0xf01b2b70 "mangled entry") at ../../ufs/ufs/ufs_lookup.c:589
#3  0xf01b3071 in ufs_lookup (ap=0xefbffe5c) at ../../ufs/ufs/ufs_lookup.c:284
#4  0xf0130619 in lookup (ndp=0xefbfff0c) at vnode_if.h:31
#5  0xf013015b in namei (ndp=0xefbfff0c) at ../../kern/vfs_lookup.c:156
#6  0xf0133a2d in link (p=0xf48b5000, uap=0xefbfff94, retval=0xefbfff84)
    at ../../kern/vfs_syscalls.c:894
#7  0xf01cfcef in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = 1344640, 
      tf_esi = 1, tf_ebp = -272639824, tf_isp = -272629788, tf_ebx = 20082716, 
      tf_edx = 28, tf_ecx = -272641940, tf_eax = 9, tf_trapno = 7, tf_err = 7, 
      tf_eip = 134672897, tf_cs = 31, tf_eflags = 514, tf_esp = -272641840, 
      tf_ss = 39}) at ../../i386/i386/trap.c:892
#8  0x806f201 in ?? ()
#9  0xcfeb in ?? ()
#10 0xedc7 in ?? ()
#11 0xf477 in ?? ()
#12 0x99eb in ?? ()
#13 0xc592 in ?? ()
#14 0x1096 in ?? ()
(kgdb) up
#1  0xf0112402 in panic (fmt=0xf01b37d1 "bad dir")
    at ../../kern/kern_shutdown.c:367
367             boot(bootopt);
(kgdb) up
#2  0xf01b3813 in ufs_dirbad (ip=0xf494ab00, offset=49210, 
    how=0xf01b2b70 "mangled entry") at ../../ufs/ufs/ufs_lookup.c:589
589                     panic("bad dir");
(kgdb) list
584
585             mp = ITOV(ip)->v_mount;
586             (void)printf("%s: bad dir ino %ld at offset %ld: %s\n",
587                 mp->mnt_stat.f_mntonname, ip->i_number, offset, how);
588             if ((mp->mnt_stat.f_flags & MNT_RDONLY) == 0)
589                     panic("bad dir");
590     }
591
592     /*
593      * Do consistency checking on a directory entry:
(kgdb) print mp
$1 = (struct mount *) 0xf48d8200
(kgdb) print *mp
$2 = {mnt_list = {cqe_next = 0xf48db400, cqe_prev = 0xf48d5000}, 
  mnt_op = 0xf02095c0, mnt_vfc = 0xf02095ec, mnt_vnodecovered = 0xf48c8f80, 
  mnt_vnodelist = {lh_first = 0xf4e67080}, mnt_flag = 268439552, 
  mnt_maxsymlinklen = 60, mnt_stat = {f_spare2 = 0, f_bsize = 1024, 
    f_iosize = 8192, f_blocks = 2893614, f_bfree = 641136, f_bavail = 409647, 
    f_files = 1966078, f_ffree = 1073865, f_fsid = {val = {1148, 1}}, 
    f_owner = 0, f_type = 1, f_flags = 268439552, f_spare = {0, 0, 0, 0, 0, 
      0}, f_mntonname = "/m/news/news3", '\000' <repeats 76 times>, 
    f_mntfromname = "/dev/sd15e", '\000' <repeats 79 times>}, 
  mnt_data = 0xf48dbc00, mnt_time = 0}
(kgdb) set radix 16
Input and output radices now set to decimal 16, hex 10, octal 20.
(kgdb) print *mp
$3 = {mnt_list = {cqe_next = 0xf48db400, cqe_prev = 0xf48d5000}, 
  mnt_op = 0xf02095c0, mnt_vfc = 0xf02095ec, mnt_vnodecovered = 0xf48c8f80, 
  mnt_vnodelist = {lh_first = 0xf4e67080}, mnt_flag = 0x10001000, 
  mnt_maxsymlinklen = 0x3c, mnt_stat = {f_spare2 = 0x0, f_bsize = 0x400, 
    f_iosize = 0x2000, f_blocks = 0x2c272e, f_bfree = 0x9c870, 
    f_bavail = 0x6402f, f_files = 0x1dfffe, f_ffree = 0x1062c9, f_fsid = {
      val = {0x47c, 0x1}}, f_owner = 0x0, f_type = 0x1, f_flags = 0x10001000, 
    f_spare = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 
    f_mntonname = "/m/news/news3", '\000' <repeats 76 times>, 
    f_mntfromname = "/dev/sd15e", '\000' <repeats 79 times>}, 
  mnt_data = 0xf48dbc00, mnt_time = 0x0}
(kgdb)

Dumps are available on request.

>How-To-Repeat:

Run a busy news server with 2.2

>Fix:
	
	

>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199702191605.SAA03914>