Date: Tue, 12 Oct 2010 14:51:18 +0400 From: "Andrey V. Elsukov" <bu7cher@yandex.ru> To: Tobias Fredriksson <tobfr108@gmail.com> Cc: freebsd-fs@freebsd.org Subject: Re: Growing large UFS over 16TB? Message-ID: <4CB43DA6.9010907@yandex.ru> In-Reply-To: <6AE65535-DCCE-46A5-BBB9-358FEB34C18C@gmail.com> References: <6AE65535-DCCE-46A5-BBB9-358FEB34C18C@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On 12.10.2010 0:18, Tobias Fredriksson wrote:
> I understand the reason for this, its trying to read a block and the integer just wrapped around.
> Nice. The relevant lines from growfs.c are
>
> static void rdfs(ufs2_daddr_t bno, size_t size, void *bf, int fsi) { [...] if (bno < 0) { err(32,
> "rdfs: attempting to read negative block number"); } [...]
>
> Just for fun I commented the if part out and recompiled. growfs: rdfs: read error:
> -4889807711788704476: Input/output error
It seems that 20T is not so big to overflow int64_t. I think it can be somewhere
is rdfs called from.
You can try to add abort(3) call to the if part and recompile with DEBUG_FLAGS=-g.
When this if statement will be triggered again growfs will drop core file and you
could inspect it with gdb. But i don't know how is is dangerous for your FS.
--
WBR, Andrey V. Elsukov
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
iQEcBAEBAgAGBQJMtD2rAAoJEAHF6gQQyKF6wpgH/jOUDTI/byhncLUNY+KS1Vg8
TSE61JTC+4auf1AxXurT04uYtBPE5KArbdU51cL9/YxIPdtazd9bIeEsrJC0Yj7j
VXwkYQ/+k11LMWUOtuq/fHB1C2ZZ5bIalU6QCIUEhZbukGqZnaRAhVkM/0qvZFzt
Rg1iTX5g0mXzGtImWWGSHGNcW57/nTmDUZuUG0icfeCsXTvH9ezosclsfUIet0Bh
z6RBLV8MvfSAvprieluGgnHc+AWRl/RZkweOVBH+KDD4kMos6vBpAqscqp871d+H
MEoPpcesdUP/SOAOVB3lqld8Vpl4rzdtFs+6XmM8fmWuRaZmUMdgwuyFfiO7zKw=
=DPpW
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4CB43DA6.9010907>
