Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Oct 2004 16:30:02 +0300
From:      Peter Pentchev <roam@ringlet.net>
To:        Willem Jan Withagen <wjw@withagen.nl>
Cc:        freebsd-amd64@freebsd.org
Subject:   Re: two 4GB mallocs => SEGV
Message-ID:  <20041026133002.GG1003@straylight.m.ringlet.net>
In-Reply-To: <417E4D6C.4040508@withagen.nl>
References:  <20041026115041.GE2841@sivokote.iziade.m$> <417E474A.1000401@withagen.nl> <20041026125709.GF1003@straylight.m.ringlet.net> <417E4D6C.4040508@withagen.nl>

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

--Q6STzHxy03qt/hK9
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Oct 26, 2004 at 03:13:16PM +0200, Willem Jan Withagen wrote:
> Peter Pentchev wrote:
>=20
> >On Tue, Oct 26, 2004 at 02:47:06PM +0200, Willem Jan Withagen wrote:
> >
> >>Georgi Guninski wrote:
> >>
> >>
> >>>on a freebsd amd64 box with more than 8GB swap i experience the=20
> >>>following:
> >
> >[snip]
> >
> >>>amdkotef64# cat test.c
> >
> >[snip 2 * 4GB malloc]
> >
> >>>amdkotef64# gcc test.c
> >>>amdkotef64# ./a.out=20
> >>>100000000
> >>>503000
> >>
> >>>/: write failed, filesystem is full
> >>>Segmentation fault
> >>
> >>These 2 lines stem from the fact that the program is being dumped and=
=20
> >>there is not enough space to dump the full size core of that program.
> >>
> >>what does swapinfo tell you during the the run of the program???
> >>
> >>I ran malloc tests in 4Gb with 5Gb of swap, which it nicely completely=
=20
> >>filled, and then in faulted, because there was no more space.
> >>This behaviour can be set, I think. Check man 5 malloc.conf, and check=
=20
> >>/etc/malloc.conf to see if you've got the X-flag on.
> >
> >
> >But shouldn't malloc() write out an 'out of memory' message before the
> >core dump then?  There's no such message in Georgi's output.
>=20
> That depends on the flags set with malloc.conf. The X-flag tells you how=
=20
> errors are handled. But you are right, it is strange:
> 	malloc should either return 0, or give a warning.

I looked at the source before posting that - src/lib/libc/stdlib/malloc.c,
and the handling of malloc_xmalloc invokes wrterror(), which writes to
stderr before aborting.

> I think that std-malloc settings were AX for anything before -STABLE.

Actually they were 'AJ', not 'AX', and they were turned off on Sep 7 for
RELENG_5.  Georgi's uname shows 5.3-BETA6, which was cut about Sep 23,
so neither 'J' nor 'X' ought to be set by default.

Still, Georgi, can you check if you have a MALLOC_OPTIONS variable or
a /etc/malloc.conf symlink?

> >It's true that when he asked me on Saturday about this, I completely
> >forgot about malloc's X flag, but I don't think he's using it, and even
> >if he were, there ought to be a message there.
>=20
> That's why I send him to the man-page. He could even force the settings i=
n=20
> the testprogram. And check the link!!! it is probably set to something, o=
r=20
> something is assumed. So better be safe and force it one-selves.
>=20
> Could be that the message does not arrive because the out-of-mem trap=20
> killed it first.... ???
> Perhaps also check /var/log/messages. I remember seeing things there as=
=20
> well.

Aye, that's a good idea.

> >>I have malloc.conf-> aj, and the program terminates in 3 seconds becaus=
e=20
> >>it does not zero the memory.
> >>
> >>So pick and choose the behaviour you want.
> >
> >
> >Sure, the question is if this is the result of 'X' or something else :)
>=20
> Well given the fact that there are not yet that many big boxes, let alone=
=20
> people really wanting to allocate a 4Gb blob, I'm not going to bet the=20
> usual case of beer on it. :~)

I won't either - seeing as, physical distance considered, Georgi has a much
better chance to find me and hold me up to it :)

G'luck,
Peter

--=20
Peter Pentchev	roam@ringlet.net    roam@cnsys.bg    roam@FreeBSD.org
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
If the meanings of 'true' and 'false' were switched, then this sentence wou=
ldn't be false.

--Q6STzHxy03qt/hK9
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (FreeBSD)

iD8DBQFBflFa7Ri2jRYZRVMRAlDEAJ92iMMqku4hoeU/dJ+IchkceaODVQCgpiWF
D264VA0LU0ATRmKaRuxY+aE=
=dUIh
-----END PGP SIGNATURE-----

--Q6STzHxy03qt/hK9--



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