two 4GB mallocs => SEGV
Willem Jan Withagen
wjw at withagen.nl
Tue Oct 26 05:47:11 PDT 2004
Georgi Guninski wrote:
> on a freebsd amd64 box with more than 8GB swap i experience the following:
>
> amdkotef64# uname -a
> FreeBSD amdkotef64.localdomain 5.3-BETA6 FreeBSD 5.3-BETA6 #0: Sat Sep 25
> 21:49:38 UTC 2004 root at fanboy.samsco.home:/usr/obj/usr/src/sys/GENERIC
> amd64
> amdkotef64#
>
> amdkotef64# cat test.c
> #include <stdlib.h>
>
> int main(int ac, char **av)
> {
> char *a, *b;
> size_t siz;
> siz=4L*1024L*1024L*1024L;
> printf("%lx\n",siz);
> a=malloc(siz);
> printf("%lx\n",a);
> b=malloc(siz);
> printf("%lx\n",b);
> }
> amdkotef64# gcc test.c
> amdkotef64# ./a.out
> 100000000
> 503000
> /: write failed, filesystem is full
> Segmentation fault
These 2 lines stem from the fact that the program is being dumped and 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 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
/etc/malloc.conf to see if you've got the X-flag on.
I have malloc.conf-> aj, and the program terminates in 3 seconds because it
does not zero the memory.
So pick and choose the behaviour you want.
--WjW
> amdkotef64# df -h
> Filesystem Size Used Avail Capacity Mounted on
> /dev/ad0s3a 3.8G 3.7G -236M 107% /
> devfs 1.0K 1.0K 0B 100% /dev
> /dev/ad0s3d 4.7G 34K 4.3G 0% /home
> amdkotef64# du -h a.out.core
> 2.5G a.out.core
> amdkotef64#
More information about the freebsd-amd64
mailing list