Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 05 Mar 2001 11:16:42 -0800
From:      Matthew Reimer <mreimer@vpop.net>
To:        freebsd-stable@freebsd.org
Subject:   Softupdates panic "ffs_blkfree: bad size" on -stable
Message-ID:  <3AA3E61A.1EC86C40@vpop.net>

next in thread | raw e-mail | index | archive | help
Last night one of our servers panicked with the message "ffs_blkfree:
bad size." The kernel is from early March 4 (PST).

Below is a backtrace and the versions of the files in /sys/ufs/ffs. I
have a kernel dump for anyone interested in looking into this problem;
email me and I'll get it to you.

Hopefully this can be fixed before 4.3-RELEASE.

Matt

(kgdb) bt
#0  dumpsys () at /usr/src/sys/kern/kern_shutdown.c:469
#1  0xc014d65b in boot (howto=260) at
/usr/src/sys/kern/kern_shutdown.c:309
#2  0xc014d9f1 in panic (fmt=0xc022f5d4 "from debugger")
    at /usr/src/sys/kern/kern_shutdown.c:556
#3  0xc012cb29 in db_panic (addr=-1071586164, have_addr=0, count=-1, 
    modif=0xccc23bdc "") at /usr/src/sys/ddb/db_command.c:433
#4  0xc012cac9 in db_command (last_cmdp=0xc02564a0,
cmd_table=0xc0256300, 
    aux_cmd_tablep=0xc026df5c) at /usr/src/sys/ddb/db_command.c:333
#5  0xc012cb8e in db_command_loop () at
/usr/src/sys/ddb/db_command.c:455
#6  0xc012ec9b in db_trap (type=3, code=0) at
/usr/src/sys/ddb/db_trap.c:71
#7  0xc020e22e in kdb_trap (type=3, code=0, regs=0xccc23ce4)
    at /usr/src/sys/i386/i386/db_interface.c:158
#8  0xc0219de8 in trap (frame={tf_fs = -859701232, tf_es = -1072431088, 
      tf_ds = -1063059440, tf_edi = -1045659648, tf_esi = 256, 
      tf_ebp = -859685588, tf_isp = -859685616, tf_ebx = -1071376747, 
      tf_edx = 0, tf_ecx = 1021, tf_eax = 18, tf_trapno = 3, tf_err = 0, 
      tf_eip = -1071586164, tf_cs = 8, tf_eflags = 582, tf_esp =
-1071338881, 
      tf_ss = -1071426301}) at /usr/src/sys/i386/i386/trap.c:569
#9  0xc020e48c in Debugger (msg=0xc0235503 "panic") at
machine/cpufunc.h:64
#10 0xc014d9e8 in panic (fmt=0xc0241695 "ffs_blkfree: bad size")
    at /usr/src/sys/kern/kern_shutdown.c:554
#11 0xc01d9527 in ffs_blkfree (ip=0xccc23e0c, bno=72020, size=8192)
    at /usr/src/sys/ufs/ffs/ffs_alloc.c:1320
#12 0xc01ddd1b in indir_trunc (ip=0xccc23e0c, dbn=16, level=0, lbn=12, 
    countp=0xccc23dfc) at /usr/src/sys/ufs/ffs/ffs_softdep.c:2195
#13 0xc01ddad5 in handle_workitem_freeblocks (freeblks=0xc226f780)
    at /usr/src/sys/ufs/ffs/ffs_softdep.c:2095
#14 0xc01dbfd3 in process_worklist_item (matchmnt=0x0, flags=0)
    at /usr/src/sys/ufs/ffs/ffs_softdep.c:685
#15 0xc01dbe66 in softdep_process_worklist (matchmnt=0x0)
    at /usr/src/sys/ufs/ffs/ffs_softdep.c:584
#16 0xc0178c6f in sched_sync () at /usr/src/sys/kern/vfs_subr.c:1035
#17 0xc020eb9c in fork_trampoline ()
Cannot access memory at address 0x8000.
(kgdb) frame 11
#11 0xc01d9527 in ffs_blkfree (ip=0xccc23e0c, bno=72020, size=8192)
    at /usr/src/sys/ufs/ffs/ffs_alloc.c:1320
1320                    panic("ffs_blkfree: bad size");
(kgdb) l
1315            if ((u_int)size > fs->fs_bsize || fragoff(fs, size) != 0
||
1316                fragnum(fs, bno) + numfrags(fs, size) > fs->fs_frag)
{
1317                    printf("dev=%s, bno = %ld, bsize = %ld, size =
%ld, fs = %s\n",
1318                        devtoname(ip->i_dev), (long)bno,
(long)fs->fs_bsize, size,
1319                        fs->fs_fsmnt);
1320                    panic("ffs_blkfree: bad size");
1321            }
1322            cg = dtog(fs, bno);
1323            if ((u_int)bno >= fs->fs_size) {
1324                    printf("bad block %ld, ino %lu\n",
(kgdb) p size
$8 = -859685364
(kgdb) frame 12
#12 0xc01ddd1b in indir_trunc (ip=0xccc23e0c, dbn=16, level=0, lbn=12, 
    countp=0xccc23dfc) at /usr/src/sys/ufs/ffs/ffs_softdep.c:2195
2195                    ffs_blkfree(ip, nb, fs->fs_bsize);
(kgdb) l
2190                    if (level != 0) {
2191                            if ((error = indir_trunc(ip, fsbtodb(fs,
nb),
2192                                 level - 1, lbn + (i * lbnadd),
countp)) != 0)
2193                                    allerror = error;
2194                    }
2195                    ffs_blkfree(ip, nb, fs->fs_bsize);
2196                    *countp += nblocks;
2197            }
2198            bp->b_flags |= B_INVAL | B_NOCACHE;
2199            brelse(bp);
(kgdb) p fs->fs_bsize
$9 = 8192

$ ls -lt /sys/ufs/ffs/
total 366
-rw-r--r--  1 root  wheel  147962 Mar  4 06:16 ffs_softdep.c
-rw-r--r--  1 root  wheel   22090 Jan 22 15:43 fs.h
-rw-r--r--  1 root  wheel   33540 Jan 22 15:43 ffs_vfsops.c
-rw-r--r--  1 root  wheel   15475 Dec 28 15:01 ffs_inode.c
-rw-r--r--  1 root  wheel    5747 Dec 28 15:01 ffs_softdep_stub.c
-rw-r--r--  1 root  wheel     797 Jun 26  2000 README.softupdates
-rw-r--r--  1 root  wheel   27595 Jun 22  2000 softdep.h
-rw-r--r--  1 root  wheel   47375 Mar 28  2000 ffs_alloc.c
-rw-r--r--  1 root  wheel   10833 Feb 24  2000 ffs_balloc.c
-rw-r--r--  1 root  wheel    8278 Jan 10  2000 ffs_vnops.c
-rw-r--r--  1 root  wheel    5631 Jan  9  2000 ffs_extern.h
-rw-r--r--  1 root  wheel    6448 Dec 28  1999 ffs_subr.c
-rw-r--r--  1 root  wheel   15134 Dec  2  1999 README
-rw-r--r--  1 root  wheel    5940 Aug 27  1999 ffs_tables.c

$ ident *
README:
     $FreeBSD: src/sys/ufs/ffs/README,v 1.4 1999/12/03 00:34:26 billf
Exp $

README.softupdates:
     $FreeBSD: src/sys/ufs/ffs/README.softupdates,v 1.7.2.1 2000/06/26
14:09:01 sheldonh Exp $

ffs_alloc.c:
     $FreeBSD: src/sys/ufs/ffs/ffs_alloc.c,v 1.64.2.1 2000/03/16
08:15:53 ps Exp $

ffs_balloc.c:
     $FreeBSD: src/sys/ufs/ffs/ffs_balloc.c,v 1.26 2000/02/24 20:43:20
dillon Exp $

ffs_extern.h:
     $FreeBSD: src/sys/ufs/ffs/ffs_extern.h,v 1.30 2000/01/09 22:40:02
mckusick Exp $

ffs_inode.c:
     $FreeBSD: src/sys/ufs/ffs/ffs_inode.c,v 1.56.2.2 2000/12/28
11:01:44 ps Exp $

ffs_softdep.c:
     $FreeBSD: src/sys/ufs/ffs/ffs_softdep.c,v 1.57.2.9 2001/03/02
17:22:26 dillon Exp $

ffs_softdep_stub.c:
     $FreeBSD: src/sys/ufs/ffs/ffs_softdep_stub.c,v 1.7.2.1 2000/12/28
11:01:45 ps Exp $

ffs_subr.c:
     $FreeBSD: src/sys/ufs/ffs/ffs_subr.c,v 1.25 1999/12/29 04:55:04
peter Exp $

ffs_tables.c:
     $FreeBSD: src/sys/ufs/ffs/ffs_tables.c,v 1.7 1999/08/28 00:52:22
peter Exp $

ffs_vfsops.c:
     $FreeBSD: src/sys/ufs/ffs/ffs_vfsops.c,v 1.117.2.1 2001/01/22
18:10:27 iedowse Exp $

ffs_vnops.c:
     $FreeBSD: src/sys/ufs/ffs/ffs_vnops.c,v 1.64 2000/01/10 12:04:25
phk Exp $

fs.h:
     $FreeBSD: src/sys/ufs/ffs/fs.h,v 1.14.2.2 2001/01/22 18:10:28
iedowse Exp $

softdep.h:
     $FreeBSD: src/sys/ufs/ffs/softdep.h,v 1.7.2.1 2000/06/22 19:27:42
peter Exp $

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3AA3E61A.1EC86C40>