Re: ffs_clusteralloc: allocated out of group on 5TB fs (5.3-Stable)

From: Doug White <dwhite_at_gumbysoft.com>
Date: Mon, 6 Dec 2004 10:56:34 -0800 (PST)
On Sat, 4 Dec 2004, Henry Whincup wrote:

> On a machine with a 5TB array I created a single partition via gpt and a
> filesystem using the defaults from newfs.
>
> All seemed well until I tried to fill the partition with data.  With "only"
> 870GB or so used utilities started reporting the disk as full. Shortly (a
> few hours) after the machine panic'd.

Ooh, fun. I wish I had a 5TB array to play with :)

> During this time I had been trying to copy file via nfs and rsync onto the
> array.  After several crashes I tried a simple "dd if=/dev/zero of=./file"
> and after writing ~33GB the machine rebooted (the panic details below are
> from this reboot)
>
> Details follow:

[..]
> Backtrace:
> #0  0xc060ce82 in doadump ()
> #1  0xc060d47b in boot ()
> #2  0xc060d7a1 in panic ()
> #3  0xc073445e in ffs_clusteralloc ()
> #4  0xc0733680 in ffs_hashalloc ()
> #5  0xc07329ea in ffs_reallocblks_ufs2 ()
> #6  0xc073205a in ffs_reallocblks ()
> #7  0xc0657e7c in cluster_write ()
> #8  0xc074c350 in ffs_write ()
> #9  0xc066bf10 in vn_write ()
> #10 0xc062d624 in dofilewrite ()
> #11 0xc062d4d1 in write ()
> #12 0xc07bb07f in syscall ()
> #13 0xc07a8a0f in Xint0x80_syscall ()
>
> Kernel is the default SMP kernel and sources are from 28th Nov 2004.
>
> I assume a proper debug kernel with symbols would be more helpful, but I
> just wanted to know if this was a known bug - or something I have done
> wrong, first.
> Other than that is there anything else I can provide to help find this bug?

Very large FFS filesystems have not been extensively tested. Maybe you can
help :)

You should be able to compile GENERIC with

makeoptions	"DEBUG=-g"

in the config file and that will leave a kernel.debug in the compile
directory that you can use.

Once you get that loaded up the output of 'bt full' would be nice to have.
I suspect an integer overflow in dtog(), which is a macro.

1545         if (dtog(fs, bno) != cg)
1546                 panic("ffs_clusteralloc: allocated out of group");

-- 
Doug White                    |  FreeBSD: The Power to Serve
dwhite_at_gumbysoft.com          |  www.FreeBSD.org
Received on Mon Dec 06 2004 - 17:56:35 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:24 UTC